[問題] 關於final以及Anonymous Class的問題
其實Anonymous Class裡面吃外部變數只能吃final這點滿困擾我的
例如說
final boolean isCorrect = true;
something(new OnSomethingHappenedListener(){
void onErrorHappened(Exception e) {
isCorrect = false; //這樣當然不行
}});
if(isCorrect == false)
//do some error handling
所以我只好自己寫了一組wrapper避開這種情形
public class ObjectWrapper<T> {
@SuppressWarnings("unchecked")
T mTargetObject = (T) new Object();
public ObjectWrapper(T value) {
mTargetObject = value;
}
public T getValue() {
return mTargetObject;
}
public void setValue(T value) {
mTargetObject = value;
}
}
使用起來大概長這樣
final ObjectWrapper<Boolean> isCorrect = new ObjectWrapper<Boolean>(true);
something(new OnSomethingHappenedListener(){
void onErrorHappened(Exception e) {
isCorrect.setValue(false);
}});
if(isCorrect.getValue() == false)
//do some error handling
不過我相信java應該有原生的方法(或者像我剛剛做的generic class)有支援
這種需求?請問大家有類似的訊息嗎 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.127.154
→
03/12 12:07, , 1F
03/12 12:07, 1F
→
03/12 12:36, , 2F
03/12 12:36, 2F
→
03/12 12:38, , 3F
03/12 12:38, 3F
推
03/12 16:51, , 4F
03/12 16:51, 4F
→
03/13 12:27, , 5F
03/13 12:27, 5F
→
03/13 12:29, , 6F
03/13 12:29, 6F
→
03/13 13:33, , 7F
03/13 13:33, 7F
→
03/13 13:34, , 8F
03/13 13:34, 8F
→
03/13 13:36, , 9F
03/13 13:36, 9F