Я пишу оценщик выражений на Java. Я хотел бы иметь возможность добавлять больше операторов (в настоящее время у меня есть только (,), +, -, *, / и ^). В настоящее время мой код выглядит следующим образом:
case '+':
return a+b;
case '-':
return a-b;
case '*':
return a*b;
...
Это работает для моего кода, потому что у меня всего несколько операторов. Однако, если бы я добавил больше операторов, код стал бы загроможденным. Я ищу способ сопоставить оператор (представленный строкой) с методом. Например, «ln» будет сопоставлено с Math.log (), «^» будет сопоставлено с Math.pow () и т. Д.
Как мне это сделать? Если это невозможно, каковы альтернативы?