私はコトルを学ぼうとしており、参加者は面白く混乱しています。私はJavaクラスでコンストラクタargをとり、Future(IDは別のシステムのリソースを表します)を作成し、Instange変数としてFutureを隠す状況があります。そして、「getXXXメソッドは、」ここFuture.get()
将来に委ねるコットリン
を呼び出すと、私は単にそれを構築する方法がわからないですので、私はKotlin例を供給していないのですサンプルJavaクラス
public class Example {
private Future<Foo> foo;
public Example(String fooId) {
this.foo = supplyAsync(() -> httpClient.get(fooId));
}
public Foo getFoo() {
return foo.get();
}
}
です。
class Example(fooId: Int) {
private val fooFuture = supplyAsync { httpClient.get(fooId) }
val foo: Foo
get() = fooFuture.get()
}
をしかし、Kotlinは、プロパティの振る舞いを一般化するためのより強力な概念がある - the property delegates:
オプション2を、私はどこでもこれを繰り返す必要があるため、私は探しています正確に何です。私はこれにスピンを与えるつもりです。 –
私はこの拡張関数を定義すべき興味深い質問を持っています。つまり、それは間違いなくデータクラスに属していません。 –
@ChristianBongiorno、多くのKotlinプロジェクトには 'Utils.kt'または' utils'パッケージが含まれています。プロジェクト全体で拡張機能が使用されている場合、拡張機能がそこに置かれることがよくあります。しかし、拡張子が1つのファイルでローカルに使用されていれば、それを置いて 'private'にしても構いません。 – hotkey