为什么不将external的实例传递给calc()方法。在这种情况下,每个特定的枚举将具有相应地处理Outer对象的逻辑,新的枚举不需要任何更改。
class Outer { ClassA a; ClassB b; ClassC c; Map<MyEnum,Double> results= new EnumMap<MyEnum, Double>(MyEnum.class); private enum MyEnum{ X{ public void calc(Outer o){ }}, Y{ public void calc(Outer o){ } }, Z{ public void calc(Outer o){ } }; abstract void calc(Outer o); } public void doCalc(){ for(MyEnum item:MyEnum.values()){ item.calc(this); } }}class ClassA {}class ClassB {}class ClassC {}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)