Toplayıcılar ve ayarlayıcılar Kotlin'de otomatik olarak oluşturulur. Eğer yazarsan:
val isEmpty: Boolean
Aşağıdaki Java koduna eşittir:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
Sizin durumunuzda, özel erişim değiştirici fazlalıktır - isEmpty varsayılan olarak özeldir ve yalnızca bir alıcı tarafından erişilebilir. Nesnenizin isEmpty özelliğini almaya çalıştığınızda, gerçek olarak get yöntemini çağırırsınız. Kotlin'deki alıcıların / ayarlayıcıların daha iyi anlaşılması için: aşağıdaki iki kod örneği eşittir:
var someProperty: String = "defaultValue"
ve
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
Ayrıca this
, bir alıcıdaki mülkünüzün değil, sınıf örneğinin bu olduğunu belirtmek isterim . Alıcı veya ayarlayıcıda alanın değerine erişmek istiyorsanız, field
bunun için ayrılmış kelimeyi kullanabilirsiniz :
val isEmpty: Boolean
get() = field
Yalnızca genel erişimde bir alma yöntemine sahip olmak istiyorsanız - bu kodu yazabilirsiniz:
var isEmpty: Boolean
private set
set erişimcisinin yakınındaki özel değiştirici nedeniyle bu değeri yalnızca nesnenizin içindeki yöntemlerde ayarlayabilirsiniz.
In your case the private access modifier is redundant
Nasıl? Kotlin belgesi, varsayılan değiştiricinin genel olduğunu söylüyor. kotlinlang.org/docs/reference/visibility-modifiers.html