Ist es möglich, über Java-Code auf Erweiterungsfunktionen zuzugreifen?
Ich habe die Erweiterungsfunktion in einer Kotlin-Datei definiert.
package com.test.extensions
import com.test.model.MyModel
/**
*
*/
public fun MyModel.bar(): Int {
return this.name.length()
}
Wo MyModel
ist eine (generierte) Java-Klasse? Jetzt wollte ich in meinem normalen Java-Code darauf zugreifen:
MyModel model = new MyModel();
model.bar();
Das funktioniert jedoch nicht. Die IDE erkennt die bar()
Methode nicht und die Kompilierung schlägt fehl.
Was funktioniert, ist die Verwendung einer statischen Funktion von kotlin:
public fun bar(): Int {
return 2*2
}
durch die Verwendung import com.test.extensions.ExtensionsPackage
so scheint mein IDE korrekt konfiguriert werden.
Ich habe die gesamte Java-Interop-Datei aus den Kotlin-Dokumenten durchsucht und auch viel gegoogelt, aber ich konnte sie nicht finden.
Was mache ich falsch? Ist das überhaupt möglich?
com.test.extensions.ExtensionsPackage
import package com.test.extensions.MyModel
?