2014-12-08 5 views
4

내가 방법 유형 (String, String) -> Int의 변수 x에 자바 방법 Log.d(String, String)을 할당 할 말 나는 이런 식으로 작업을 수행합니다메소드 참조에서 오버로드 모호성을 해결하는 방법은 무엇입니까?

val x: (String, String) -> Int = android.util.Log::d 

컴파일러는 말한다 :

Error:(50, 56) Overload resolution ambiguity: 
public open fun d(tag: kotlin.String!, msg: kotlin.String!): kotlin.Int defined in android.util.Log 
public open fun d(tag: kotlin.String!, msg: kotlin.String!, tr: kotlin.Throwable!): kotlin.Int defined in android.util.Log 

은 분명히 두 번째 방법이있다 Log.d(String, String, Throwable)하지만 내가 원하는 컴파일러를 어떻게 알 수 있습니까?

답변

3

여기의 모호성 제거는 현재 지원되지 않습니다 (나중에 지원 될 예정 임).

{ s, s1 -> android.util.Log.d(s, s1) } 
+0

감사합니다 안드레이 :

는 해결 방법으로, 당신은 람다 식을 사용할 수 있습니다. 변수 유형 (Java 8과 비슷 함)을 기반으로 유추 된 모호성 제거를 기대할 수 있습니까? –

+2

@cypressious, 예, 확신 –

+0

이 호에 대한 뉴스는 누구입니까? – fredoverflow