То, что я хочу сделать, это почти наверняка злоупотребление IDE, но это кажется полезным. Мне нужно создать тестовые сценарии для нескольких конечных точек API. Эти конечные точки часто имеют входные данные, которые являются либо перечислениями, либо производными от перечислений (например, путем конкатенации)
Для генерации набора тестовых входов я использую SQL: перекрестные соединения подвыборов, состоящих из группы буквальных значений. В некоторых случаях эти списки значений для данного перечисления могут быть довольно длинными.
Я обнаружил, что могу использовать «выражение выражения» для автоматической генерации этих подвыборов:
Arrays.asList(Enum.values()).map(Enum::toString).collect(Collectors.joining(
"' UNION ALL SELECT '",
"(SELECT '",
"') as enums"));
Что мне интересно, так это то, что в IntelliJ есть способ установить константу, доступную для этого диалога, чтобы я мог вместо этого сделать что-то вроде:
Arrays.asList(Enum.values()).map(Enum::toString).collect(Collectors.joining(
MYSQL_SUBSELECT_DELIM,
MYSQL_SUBSELECT_PREFIX,
MYSQL_SUBSELECT_SUFFIX);
Это сделало бы этот процесс намного более повторяемым .