Java 코드 중 일부를 Kotlin으로 변환 중이며 Kotlin 코드에 정의 된 인터페이스를 인스턴스화하는 방법을 잘 이해하지 못합니다. 예를 들어 인터페이스 (Java 코드로 정의)가 있습니다.
public interface MyInterface {
void onLocationMeasured(Location location);
}
그런 다음 Kotlin 코드 에서이 인터페이스를 인스턴스화합니다.
val myObj = new MyInterface { Log.d("...", "...") }
잘 작동합니다. 그러나 MyInterface를 Kotlin으로 변환 할 때 :
interface MyInterface {
fun onLocationMeasured(location: Location)
}
오류 메시지가 나타납니다. Interface MyListener does not have constructors
인스턴스화하려고하면 구문 이외의 다른 변경 사항이없는 것 같습니다. Kotlin에서 인터페이스의 작동 방식을 이해하지 못합니까?
Location -> Unit
가능한 경우 단일 방법 인터페이스 대신 기능 유형 (예 :)을 사용하는 것이 바람직하다는 것을 이해 합니다.