Метод Simplify в классе Enum в 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
        }
    }
}

Моя проблема в том, что я не могу иметь единообразный способ передачи параметров в цикле for. Я мог бы сделать так, чтобы каждый метод Enum принимал все классы, например

public double calc(ClassA _a,ClassB _b,ClassC _c){ dostuff}

, но если у меня будет больше классов, параметр будет выглядеть слишком некрасиво. Есть ли лучший способ сделать это?

6
задан Wei Shi 1 July 2011 в 18:03
поделиться