2015-06-16 11 views

risposta

2

Potete mescolare Kotlin e Java (uso/chiamare Kotlin classi in classi Java) Ma ciò che si vuole qui è utilizzare una funzione Kotlin in java - questo non è possibile

+0

grazie - Ho pensato che questo è un po 'come possibile – Informatic0re

13

funzioni di estensione del Kotlin sono compilati a metodi JVM prendendo il ricevitore come primo parametro. Se la funzione di estensione è dichiarato al livello superiore, ad esempio, in un file chiamato file.kt:

package foo 

fun String.getSomething(): String { 
    return "something" 
} 

Poi, in Java, è possibile chiamare il metodo statico dal corrispondente file class:

import foo.FileKt; 

... 

String someString = "blabla"; 
FileKt.getSomething(someString); 
+0

Ma non posso chiamare someString.getSomething()? Quello che pensavo sarebbe possibile è mescolare le lingue. "Cambiare" la classe String con Kotlin e usare queste modifiche in java. – Informatic0re

+2

No, non è possibile. Le funzioni/proprietà di estensione in un pacchetto sono semplicemente uno zucchero sintattico per i metodi statici, non cambiano e non possono modificare la classe ricevente corrispondente. Anche Java non è un linguaggio estensibile a questo riguardo, non c'è nulla nella specifica del linguaggio Java che permetterebbe questo. –