我想编写以下代码:
boolean found = false;
search(new SearchCallback() {
@Override void onFound(Object o) { found = true; }
});
显然这是不允许的,因为found
需要final
。found
出于线程安全的原因,我无法创建成员字段。什么是最好的选择?一种解决方法是定义
final class MutableReference<T> {
private T value;
MutableReference(T value) { this.value = value; }
T get() { return value; }
void set(T value) { this.value = value; }
}
但这最终会在正确格式化时占用大量空间,如果可能的话,我宁愿不重新发明轮子。我可以将 aList<Boolean>
与单个元素一起使用(改变该元素,或者清空列表),甚至可以使用Boolean[1]
. 但一切似乎都闻起来很有趣,因为没有一个选项按预期使用。
这样做的合理方法是什么?