Используйте другую кавычку при оценке строки с использованием JEXL

Требование заключается в использовании JEXL для оценки java-метода из файла со строковым параметром, как показано ниже:

object.method("argument");

Но иногда мой аргумент String пишется с разными кавычками:

object.method("argument");

Согласно документации JEXL, я могу использовать простые или двойные кавычки ", но не мой французский guillemet: https://commons.apache.org/proper/commons-jexl/reference/syntax.html

Один из способов сделать это - сначала очистить мой файл, заменить все разные кавычки и использовать их всегда одинаково.

Есть ли другой возможный способ изменить это поведение?

1 ответ

Решение

Вам определенно следует заменить французские гильемы одним из поддерживаемых синтаксисов (кавычка / двойная кавычка). Если вам абсолютно необходимо придерживаться этого (нечетного) соглашения и вы можете / хотите раскошелиться / собрать свою собственную локальную версию JEXL, вы должны изменить грамматику Javacc, чтобы принять новый синтаксис 'string'. Где-то вокруг http://svn.apache.org/viewvc/commons/proper/jexl/tags/COMMONS_JEXL_3_1/src/main/java/org/apache/commons/jexl3/parser/Parser.jjt?view=markup#l244

Другие вопросы по тегам