Alıcı ve ayarlayıcılar için Java kurallarını izleyen yöntemler (get ile başlayan isimlerle argümansız yöntemler ve set ile başlayan isimlerle tek argümanlı yöntemler) Kotlin'de özellikler olarak temsil edilir. Ancak, Java alıcı / ayarlayıcı çifti için bir mülk oluştururken Kotlin ilk önce bir alıcı arıyor. Alıcı, mülk türünü, alıcı türünden çıkarmak için yeterlidir. Öte yandan, yalnızca bir ayarlayıcı varsa özellik oluşturulmaz (çünkü Kotlin şu anda yalnızca ayarlı özellikleri desteklemez).
Bir pasör devreye girdiğinde, mülk yaratma süreci biraz belirsizleşir. Nedeni, alıcı ve ayarlayıcının farklı tipte olması olabilir. Dahası, alıcı ve / veya ayarlayıcı, bir alt sınıfta geçersiz kılınabilir, bu da android'de EditText örneğidir.
Yukarıdaki durumda Android TextView sınıfı bir alıcı içerir
CharSequence getText()
ve bir pasör geçersiz
setText(CharSequence)
TextView türünde bir değişkenim olsaydı kodum iyi çalışırdı. Ama geçersiz kılınmış bir alıcı içeren EditText sınıfını kullandım
Editable getText()
yani bir EditText için Düzenlenebilir alabilir ve bir EditText için Düzenlenebilir ayarlayabilirsiniz. Bu nedenle, Kotlin makul bir şekilde Düzenlenebilir türünde bir sentetik özellik metni oluşturur. String sınıfı Düzenlenebilir olmadığından, bu nedenle EditText sınıfının text özelliğine bir String örneği atayamam.
JetBrains, Java alıcı ve ayarlayıcı yöntemleri için kotlin özellikleri oluştururken alıcı yöntemlerinin baskın rolünü belirtmeyi unutmuş gibi görünüyor. Her neyse, jet beyin kotlin web sitesine github aracılığıyla çekme isteği gönderdim.
Bu orta mesajda da yukarıdaki problemim var , Kotlin Java Getters and Setters'tan Nasıl Özellik Yaratıyor (Jetbrains tarafından Belgelenmemiş)