Czy jest możliwy dostęp do funkcji rozszerzeń z kodu Java?
Zdefiniowałem funkcję rozszerzenia w pliku Kotlin.
package com.test.extensions
import com.test.model.MyModel
/**
*
*/
public fun MyModel.bar(): Int {
return this.name.length()
}
Gdzie MyModel
jest (wygenerowana) klasa java. Teraz chciałem uzyskać do niego dostęp w moim normalnym kodzie java:
MyModel model = new MyModel();
model.bar();
Jednak to nie działa. IDE nie rozpozna bar()
metody i kompilacja nie powiedzie się.
Co działa przy użyciu funkcji statycznej z kotlin:
public fun bar(): Int {
return 2*2
}
używając, import com.test.extensions.ExtensionsPackage
więc moje IDE wydaje się być poprawnie skonfigurowane.
Przeszukałem cały plik Java-interop z dokumentacji kotlin i dużo googlowałem, ale nie mogłem go znaleźć.
Co ja robię źle? Czy to w ogóle możliwe?
com.test.extensions.ExtensionsPackage
import package com.test.extensions.MyModel
?