Я перетворюю частину свого Java-коду в Котлін, і я не зовсім розумію, як інстанціювати інтерфейси, визначені в коді Котліна. Як приклад, у мене є інтерфейс (визначений в коді Java):
public interface MyInterface {
void onLocationMeasured(Location location);
}
А далі в своєму коді Котліна я інстанціюю цей інтерфейс:
val myObj = new MyInterface { Log.d("...", "...") }
і це чудово працює. Однак, коли я перетворюю MyInterface в Котлін:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
Я отримую повідомлення про помилку: Interface MyListener does not have constructors
коли я намагаюся його інстанціювати - хоча мені здається, що нічого, крім синтаксису, не змінилося. Чи я неправильно розумію, як працюють інтерфейси в Котліні?
Location -> Unit
) замість однометодних інтерфейсів, якщо можливо - це правильно?