Kotlin'i öğrenmeye çalışıyorum ve delegeler ilginç ve kafa karıştırıcı. Bir java sınıfında ben bir kurucu argüman alacağım, bir Gelecek (ID başka bir sistemde bir kaynağı temsil ediyor) ve Geleceği bir instange değişkeni olarak saklayacağım bir durumum var. Ardından "getXXX" İşte Future.get()
Kotlin geleceğe delege veren
çağırır örnek bir java sınıfı
public class Example {
private Future<Foo> foo;
public Example(String fooId) {
this.foo = supplyAsync(() -> httpClient.get(fooId));
}
public Foo getFoo() {
return foo.get();
}
}
Ben sadece bunu nasıl oluşturulacağı emin değilim çünkü Kotlin örneğini temin değilim olduğunu.
class Example(fooId: Int) {
private val fooFuture = supplyAsync { httpClient.get(fooId) }
val foo: Foo
get() = fooFuture.get()
}
Ama Kotlin mülkiyet davranışını genelleme için daha güçlü bir kavram var - the property delegates:
Seçenek 2 Ben her yerde bu tekrarlamanız gerekir, çünkü aradığım tam olarak ne olduğunu. Bunu bir spin vereceğim. –
Bu uzantı işlevini tanımlamam gereken ilginç bir soru var. Demek istediğim, kesinlikle bir veri sınıfına ait değil. –
@ChristianBongiorno, pek çok Kotlin projesi 'Utils.kt' veya' utils' paketini içerir ve uzantılar genellikle proje genelinde kullanılırsa yerleştirilir. Ancak bir uzantı tek bir dosyada yerel olarak kullanılıyorsa, oraya koymak ve özel yapmak için iyi görünüyor. – hotkey