Короче, я уже запарился разбираться с Enum.. пишу какой-то сс..ый калькулятор уже второй день..
Есть два класса, мейн и класс операций. по задумке, чтобы уйти от использования свитчей, нужно в перечислениях операций реализовать метод 
getResult.
В основном классе я считываю сканером два значения и оператор (тип 
String, с 
char не хочу извращаться, да и много лишнего кода из-за него будет). Далее мне как-то надо вызвать тот метод 
getResult, чтобы вывести консоль. Текущая реализация с ошибкой. Не знаю, что делать. Пытался привести к типу 
Operations строковое значение оператора - ошибка, писал похожую конструкцию 
Operations o = o.getResult(arg1, arg2); - никак.
Примеры гуглил, было похожее что-то, но там просто по-очереди вызывался метод типа моего 
getResult, но мне не подходит, т.к. оператор заранее не известен.. А то и вообще какие-то громоздкие конструкции.
|  1 из 2  | Trulala | 
- import java.util.Scanner; 
-   
- public class Run { 
-   
-     private static double argument1; 
-     private static double argument2; 
-     private String operator; 
-     private static String result; 
-   
-     public static void main(String[] args) { 
-         Run app = new Run(); 
-         app.runApp(); 
-     } 
-   
-     public void runApp() { 
-   
-         Scanner sc = new Scanner(System.in); 
-   
-         System.out.println("Enter your first value:"); 
-         argument1 = sc.nextDouble(); 
-   
-         System.out.println("Enter your second value:"); 
-         argument2 = sc.nextDouble(); 
-   
-         System.out.println("Enter operation: "); 
-         operator = sc.next(); 
-         sc.close(); 
-         // Здесь трабла, хз как правильно вызвать метод 
-         result = operator.getResult(argument1, argument2); 
-   
-         System.out.println("Result: " + result); 
-     } 
- } 
- public enum Operations { 
-   
-     PLUS("+") { 
-         @Override 
-         public double getResult(double arg1, double arg2) { 
-             return arg1 + arg2; 
-         } 
-     }, 
-     MINUS("-") { 
-         @Override 
-         public double getResult(double arg1, double arg2) { 
-             return arg1 - arg2; 
-         } 
-     }, 
-     DIVIDE("/") { 
-         @Override 
-         public double getResult(double arg1, double arg2) { 
-             return arg1 / arg2; 
-         } 
-     }, 
-     MULTIPLY("*") { 
-         @Override 
-         public double getResult(double arg1, double arg2) { 
-             return arg1 * arg2; 
-         } 
-     }; 
-   
-     public String operator; 
-   
-     private Operations(String operator) { 
-         this.operator = operator; 
-     } 
-   
-     public abstract double getResult(double arg1, double arg2); 
-   
- } 
И еще по поводу @Override: где-то он используется, где-то нет (в разных реализациях одного и того же кода) - здесь оно надо? До этого у меня было проще, но ошибка все равно оставалась, проблемы с типами. Пока пробовал разные варианты кода, допогромировал до такого состояния 
