Therapyx
@Therapyx
Data Science

Можно ли использовать оператор в ветвлении как параметр или аттрибут?

Это конечно звучит очент абсурдно. Но значительно бы упростило ситуацию в поделках правил CEP.
Суть в том, что есть HashMap такого типа.
HashMap(String ID, new ClassA<Double Value,....>)
считывая огромное кол-во данных надо постоянно сверять их с вэлью петтерном. В зависимости от айди это может быть
>, <, ==, <=, >= и даже модуло. Так что заместо
if (map.get(ID).getValue < value)
и так тонны раз при каждой потребности, надо сделать что-то на подобии

map.get(ID).getValue       class.getCONDITION      value)

айдишек более 300 штук, в ручную без такого подхода пол года вбивать. А так всю хешмэпу можно было бы заполнить автоматически.

Есть ли какие-либо решения? Опять же
map.get(ID).getValue       class.getCONDITION      value)

на 95% думаю что я брежу) Но если кто подскажет другие возможные решения, буду очень благодарен.
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
lxsmkv
@lxsmkv
Test automation engineer
Сделайте стурктуру данных, которая будет хранить левое значение, оператор как строку, и правое значение
в ней метод evaluate типа
if operator.equals("<=") 
return  leftval <= rightval
.. и т.д.

так чтобы вместо
if (map.get(ID).getValue < value)
вызывать что-то вроде
if (ExpressionMap.getEntryByID(ID).evaluate())

но не буду настаивать на верности такого подхода :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы