#java #enums #jax-rs #openapi #openapi-generator
Вопрос:
Учитывая эту спецификацию OpenAPI для sizeRange
поля модели проекта:
size:
type: string
description: Size range for this project
enum: [RANGE_0_10M,RANGE_10M_50M,RANGE_50M_100M]
example: RANGE_10M_50M
Генератор jaxrs-spec
OpenAPI приводит к Project.class как:
public enum SizeEnum {
_0_10M(String.valueOf("RANGE_0_10M")), _10M_50M(String.valueOf("RANGE_10M_50M")), _50M_100M(String.valueOf("RANGE_50M_100M"));
Результирующие значения перечисления сокращены (для использования в Java):
Project.SizeEnum._0_10M
Я был готов проигнорировать это неудобство, но в данном случае это приводит к исключению:
Enum.valueOf(Project.SizeEnum.class, "RANGE_0_10M");
No enum constant com.mycompany.my_project.Project.SizeEnum.RANGE_0_10M
Примечания
Если я добавлю значение в перечисление, которое начинается с чего-то другого, RANGE_
это приведет к правильному отображению всех значений перечисления. Я делаю вывод, что какой-то процесс автоматически сокращает их все, потому что у них общий префикс.
Это конфигурация генератора OpenAPI, к которой у меня есть доступ? Я не могу его найти: