Tip kısıtlamaları nedeniyle Void
parametresini iletmem gereken bir Java işlevim var. Ben KOTLIN gelen bu işlevi çağırmak istiyorum, ama derleyici ı Java yaptığınız gibi ben null
ile çağırdığınızda türleri uyumlu olmadığını şikayet ŞimdiKotlin'de Java Void türünü kullanma
void foo(Void v) {
// do something
}
:
foo(null);
şey gibi Kotlin derleyicisinin kabul ettiği şekilde bu işleve geçmek için ne yapmalıyım?
Güncelleme: gerçek kod şuna benzer:
fun foo(): Map<String, Void> {
return mapOf(Pair("foo", null))
}
Güncelleme:null as Void
kullanarak aslında ya çalışmaz: senin Kotlin eklentisi güncellemek için
kotlin.TypeCastException: null cannot be cast to non-null type java.lang.Void
sen trie var d değişkeni elden önce null olarak mı ayarlıyorsunuz? İşlev bir INT veya OBJECT kullanıyor mu? Eğer öyleyse, denemeye ya da değiştirmeye ya da değiştirmeye başlamadan önce onu NULL olarak ayarlayabilir. Bu, aradığınız veya başka bir sınıftan miras aldığınız bir yöntem mi? – colt
aslında “Map” i döndürmesi gereken bir işlevi miras alıyorum ve 'return mapOf (Çift (" foo ", null))) –
TBieniek
Derleyici tarafından verilen tam hata iletisi nedir? Problemi izole bir örneklemde yeniden üretemedim, yani bir "Void" parametresine " –