相关疑难解决方法(0)

简化Java中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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法通过统一的方式传递for循环中的参数.我可以使每个Enum方法都采用所有类

public double calc(ClassA _a,ClassB _b,ClassC _c){ dostuff}
Run Code Online (Sandbox Code Playgroud)

但如果我有更多的类,参数看起来会太难看.有没有更好的方法来做这种事情?

java enums

6
推荐指数
1
解决办法
858
查看次数

标签 统计

enums ×1

java ×1