【发布时间】:2011-09-26 22:52:33
【问题描述】:
我有一个包含 Enum 的类来进行计算。 每个 Enum 都使用外部类中的部分或全部非静态变量。但是,由于它们无法访问实例变量,因此我必须将它们作为参数传递。
public class Outer{
ClassA a;
ClassB b;
ClassC c;
Map<MyEnum,Double> results= new EnumMap(MyEnum.class);
private enum MyEnum{
X{ public double calc(ClassA _a){ dostuff } },
Y{ public double calc(ClassB _b,ClassC _c){ dostuff } },
Z{ public double calc(ClassA _a,ClassB _b){ dostuff } };
}
public void doCalc(){
for(MyEnum item:MyEnum.values()){
result.get(item) = item.calc(...);//Not uniform here
}
}
}
我的问题是我不能有一个统一的方式来传递for循环中的参数。我可以让每个 Enum 方法都采用所有类,例如
public double calc(ClassA _a,ClassB _b,ClassC _c){ dostuff}
但是如果我有更多的类,参数会看起来太难看。有没有更好的方法来做这种事情?
【问题讨论】: