Konwertuję część mojego kodu Java do Kotlin i nie do końca rozumiem, jak tworzyć instancje interfejsów, które są zdefiniowane w kodzie Kotlin. Jako przykład mam interfejs (zdefiniowany w kodzie Java):
public interface MyInterface {
void onLocationMeasured(Location location);
}
A potem dalej w moim kodzie Kotlin tworzę instancję tego interfejsu:
val myObj = new MyInterface { Log.d("...", "...") }
i działa dobrze. Jednak kiedy konwertuję MyInterface na Kotlin:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
Otrzymuję komunikat o błędzie: Interface MyListener does not have constructors
kiedy próbuję go utworzyć - chociaż wydaje mi się, że nic się nie zmieniło poza składnią. Czy źle rozumiem, jak działają interfejsy w Kotlinie?
Location -> Unit
) Zamiast interfejsów jednomodowych, jeśli to możliwe - czy to prawda?