次のコードを書きたいと思います。
boolean found = false;
search(new SearchCallback() {
@Override void onFound(Object o) { found = true; }
});
found
である必要があるため、明らかにこれは許可されていませんfinal
。found
スレッド セーフの理由から、メンバー フィールドを作成できません。最良の代替手段は何ですか? 1 つの回避策は、定義することです。
final class MutableReference<T> {
private T value;
MutableReference(T value) { this.value = value; }
T get() { return value; }
void set(T value) { this.value = value; }
}
しかし、これは適切にフォーマットすると多くのスペースを占有することになり、できれば車輪を再発明したくありません。List<Boolean>
a を単一の要素 (その要素を変更するか、リストを空にする) またはa で使用することもできますBoolean[1]
。しかし、どのオプションも意図したとおりに使用されていないため、すべてがおかしいようです。
これを行うための合理的な方法は何ですか?