我需要從匿名內部類中獲取值。內部類只能在接近最後的變量,當然,這導致了這個可怕的解決方法:如何避免內部類通過單個元素數組返回值?
public String sampleMethod(){
final String[] output = new String[1];
findResult(new SampleOperation(){
@Override
private void perform(){
output[0] = "result";
}
});
return output[0];
}
private void findResult(SampleOperation op){
op.perform();
}
private static interface SampleOperation {
void perform();
}
顯然,一個簡單的例子;這裏的班級很容易移動,但問題的原因就在那裏。如果在findResult()內部存在依賴關係(例如需要觸發的鎖存器),則展開這樣的類將變得不切實際。
結束語最後陣列意味着它是可訪問的,但是這我曾經遇到最糟糕的氣味之一。
是否有一個健全的方式來獲得這樣的委託返回類型? (即不使用此?)
它聞起來不好。聞起來像使用致命的命令模式。工程計劃產生的深黑暗地點 – nsfyn55 2012-03-13 13:08:19