我需要从匿名内部类中获取值。内部类只能在接近最后的变量,当然,这导致了这个可怕的解决方法:如何避免内部类通过单个元素数组返回值?
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