2016-06-13 21 views
6

private final String s (Java) veya val s (Kotlin) ile son alanı ilan ettiğimi varsayalım. Başlatma sırasında, uzak bir servis çağrısı sonucu alanı başlatmak istiyorum. Java'da kurucuda (ör. s = RemoteService.result()) başlatabilirdim, ancak Kotlin'de bunun nasıl yapılacağını anlayamıyorum çünkü tarlada bildirilmesi gereken aynı satırda başlatılması gerektiğini söyleyebilirim. Buradaki çözüm nedir?Kotlin'de bir final alanını nasıl başlatabilirim?

class MyClass { 

    val s: String 

    init { 
     s = "value" 
    } 

} 

cevap

10

Sen init bloğunda val değer ayarlayabilirsiniz. Bir örnek

kotlin, ifadenin dönüş türünden s türünü tahmin edecektir.

4

Ayrıca değeri anılır ilk kez başlatılır by lazy ile değerini başlatabilir:

İlgili konular