Henüz Kotlin'de desteklenmeyen Java 8 özelliklerinin güncel bir değerlendirmesi var mı? ÖrneğinKotlin: Java 8'in hangi özellikleri henüz desteklenmiyor?
, Map#putIfAbsent gibi varsayılan bir yöntem derlenmeyecektir çağıran (desteklenmeyen referans hatası): Varsayılan yöntem geçersiz kılınır
import java.util.*
fun main(args: Array<String>) {
val x : Map<Int, Int> = HashMap<Int, Int>()
x.putIfAbsent(1, 2)
}
, çalışır:
import java.util.*
fun main(args: Array<String>) {
val x : HashMap<Int, Int> = HashMap<Int, Int>()
x.putIfAbsent(1, 2)
}
O deneylerle öğrendiğim şeydir, ancak Java 8 kodundan Kotlin'e geçmenin mümkün olup olmadığına karar vermek için sistematik bir genel bakış değerli olacaktır.
Güncelleme: benim örnekte kodu "Java KOTLIN için" dönüştürücü tarafından yaratıldı. User2235698'in işaret ettiği gibi, Map<Int, Int>
, değişmez bir Kotlin haritasıdır. Yine de, ben bir java.util.Map
haritasına değiştirdiğimde örnek derlenemiyor. Bununla birlikte, varsayılan yöntemlerle bir şey yapmak zorunda olduğum iddiası yanıltıcıdır. Bu sorunun kapsamı dışındadır gibi
, burada bir takip sorusunu açtı: Does java.util.HashMap not implement java.util.Map in Kotlin?
https://youtrack.jetbrains.com/issue/KT-4778 –
@JBNizet Teşekkür alt görevler olduğuna bakın, bağlantı çok iyidir. Bence bunu bir topluluk cevabına dönüştüreceğim. –
Bu soru her zaman güncel olmayacak, aşağıda topluluk wiki yanıtı (ve yukarıdaki yorum) bunu izlemek için en iyi yerlerdir. –