Могу ли я сопоставить String с методом в java?

Я пишу оценщик выражений на Java. Я хотел бы иметь возможность добавлять больше операторов (в настоящее время у меня есть только (,), +, -, *, / и ^). В настоящее время мой код выглядит следующим образом:

case '+':  
return a+b;  
case '-':  
return a-b;  
case '*':  
return a*b;  
...

Это работает для моего кода, потому что у меня всего несколько операторов. Однако, если бы я добавил больше операторов, код стал бы загроможденным. Я ищу способ сопоставить оператор (представленный строкой) с методом. Например, «ln» будет сопоставлено с Math.log (), «^» будет сопоставлено с Math.pow () и т. Д.

Как мне это сделать? Если это невозможно, каковы альтернативы?

5
задан mu is too short 17 July 2011 в 01:18
поделиться