У меня есть класс, который содержит 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}
Но если у меня будет больше классов, параметр будет выглядеть слишком некрасиво. Есть ли лучший способ сделать это?