Как мне избежать MVEL PropertyAccessExceptions - PullRequest
0 голосов
/ 04 июля 2019

Как вы обходите исключения PropertyAccessException, когда ключ верхнего уровня в хэш-карте может существовать или не существовать?

В приведенном ниже примере, если свойство существует, оно работает просто отлично, но если свойство не существует в карте переменных, оно генерирует исключения PropertyAccessExceptions. Я знаю, что я могу использовать? для нулевой безопасной навигации, но это не работает, когда свойство существует на верхнем уровне.

Есть предложения?

HashMap<String, Object> variables = new HashMap<>();
variables.put("aProperty", "aValue");

Boolean result = MVEL.evalToBoolean("'aValue' == aProperty", variables);
assertThat(result).isTrue();  //This works

result = MVEL.evalToBoolean("'aValue' == aNonExistentProperty", variables);
assertThat(result).isFalse();  //This throws a PropertyAccessException, since aNonExistentProperty is not defined

Я бы хотел, чтобы обходной путь избежал PropertyAccessExceptions.

...