Java 8에서는 Class '인스턴스의 메소드에 대한 참조를 가질 수 있습니다. 여기 클래스있어서 Object getItem(int i)
을 갖는다 Adapter
의 인스턴스 예Kotlin의 특정 인스턴스 메소드에 대한 참조
Function1<Integer, Object> ref = a::getItem;
이다.
우리는 Kotlin에서 동일한 작업을 수행 할 수 있습니까? 나는 성공하지 않고 같은 구문을 시도했다.
val ref: Adapter.(Int) -> Any = Adapter::getItem
그러나 여기에서 나는 아직도 그것을 호출하는 Adapter
의 인스턴스가 필요합니다 지금까지 난 단지과 같이 확장 메서드의 참조를 만들 수 있었다. 내가 볼 다른 alterantive은 다음과 같이 람다를 정의한다 :
val ref: (Int) -> Any = { a.getItem(it) }
캡처 참조는 아직 지원되지 않지만 나중에 지원 될 예정입니다. –
[Kotlin : 다른 함수에 매개 변수로 함수를 전달하는 방법?] (http://stackoverflow.com/questions/16120697/kotlin- 매개 변수를 다른 것으로 전달하는 방법) – Ram
람다를 사용하는 옵션은 현재 1.0으로 현재 최선의 방법입니다. @AndreyBreslav에 언급 된대로 향후 변경 될 수 있습니다. –