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
可能であれば、単一メソッドのインターフェースの代わりに関数型(たとえば)を使用することが望ましいと理解しています-正しいですか?