Guice バインディングをセットアップしたいので、Java で完全に動作するモジュールを作成しました。
public class CrashLoggerModule extends AbstractModule {
@Override
public void configure() {
bind(CrashLogger.class).to(ConcreteCrashLogger.class);
}
}
次に、このコードを Kotlin に変換しました。
public class CrashLoggerModule : AbstractModule() {
override fun configure() {
bind(javaClass<CrashLogger>()).to(javaClass<ConcreteCrashLogger>())
}
}
残念ながら、このクラスの Kotlin バージョンはもう機能しません。これは、Kotlin が内部メソッドを呼び出すpublic fun <A, B> A.to(that: B): Pair<A, B>
代わりにLinkedBindingBuilder<T>.to(Class<? extends T> c)
、Guice バインディングが正しく設定されないために発生します。
拡張関数ではなく、クラス メソッドを使用することを明示的に指定するにはどうすればよいですか?