2015-06-16 22 views

cevap

2

Sen (/ kullanabilecekleri java sınıfları sınıfları KOTLIN diyoruz) KOTLIN ve java karıştırın Ama burada ne istediğiniz java bir KOTLIN özelliği kullanmak olduğunu olabilir - bu mümkün değil

KOTLIN uzantısı fonksiyonları JVM yöntemlere derlenmektedir
+0

teşekkür - Bu nasıl olabileceğini düşündüm bazı – Informatic0re

13

alıcıyı ilk parametre olarak almak. Uzantınızın fonksiyonu üst düzeyde beyan edilirse, file.kt adlı bir dosyada örneğin: Sonra

package foo 

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

, Java, karşılık gelen file class statik yöntemini çağırabilirsiniz:

import foo.FileKt; 

... 

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

Ama bazı somering.getSomething() çağrısı yapamıyorum? Düşündüğüm, dilleri karıştırmaktı. String sınıfını Kotlin ile değiştirme ve bu değişiklikleri java'da kullanma. – Informatic0re

+2

Hayır, yapamazsınız. Bir paketteki uzatma fonksiyonları/özellikleri sadece statik yöntemler için sözdizimsel bir şekerdir, karşılık gelen alıcı sınıfını değiştirmez ve değiştiremezler. Ayrıca Java, bu bağlamda genişletilebilir bir dil değildir, Java Dil Spesifikasyonu'nda buna izin verecek hiçbir şey yoktur. –