Этот вопрос задавался несколько раз ранее, и, насколько я могу судить по прочтению ответов (и моего собственного опыта работы с java), не существует нативной функции java (например, expression.eval ()), которая бы выполняла ваширабота. Основная причина этого может заключаться в том, что Java никогда не может знать, откуда берутся выражения / значения, и поэтому не может предоставить общее решение, которое удовлетворяет, например, как проверке входных данных, так и полноте и т. Д.
Однако (!), Как обычноумные люди садились и кодировали свои собственные решения. Вы можете найти это или , что ТАК Вопросы / Ответы полезно. В ответах перечислено несколько решений вашей проблемы.
В зависимости от вашего варианта использования, вы можете не захотеть слишком усложнять вещи. Например, если вы хотите оценить только четыре операнда / типа выражения, которые вы включили выше, вы можете просто «перенести» свой код в свою собственную библиотеку и, таким образом, сохранить свой основной класс в чистоте, не обращаясь к стороннему коду.
Я знаю, это не тот ответ, на который вы надеялись. Считайте, что это шанс углубить ваше понимание и знание языка.
Очевидно, что cou также может перенести вашу логику на язык, который поддерживает оценку строковых выражений.
Счастливое кодирование