Я создал загрузочное приложение Spring, которое принимает в заголовке параметр enum client
.Если я определяю enum Client следующим образом:
public enum Client {
app("app"),
web("web");
Client( String agent){
this.agent = agent;
}
public final String agent;
}
, он работает успешно.Но когда я объявляю мое перечисление следующим образом:
public enum Client {
APP("app"),
WEB("web");
Client( String agent){
this.agent = agent;
}
public final String agent;
}
выдает ошибку java.lang.IllegalArgumentException: No enum constant com.xx.xxx.Client.app
.
Кажется, что Spring пытается преобразовать строковый параметр в перечисление с тем же именем, но почему он не использует метод Client.valueOf(String)
для получения перечисления Client
?
Я могу объявить свой enum как при первом подходе, но хотел понять, почему Spring демонстрирует такое поведение.