У меня есть Enum, как показано ниже
public enum Customer {
RETAIL("retail"),
FREELANCER("FreeLancer"),
MARKET("market"),
PUBLICATION("publication");
private String contentType;
private static final Map<String,Customer> contentTypeMap;
public String getContentType(){
return this.contentType;
}
static {
Map<String,Customer> map = new ConcurrentHashMap<>();
for(Customer type : Customer.values ()){
map.put (type.getContentType (),type);
}
contentTypeMap = map;
}
Customer(String contentType){
this.contentType=contentType;
}
public static Customer getContentType(String contentType){
return contentTypeMap.get (contentType);
}
}
Это перечисление представляет тип клиента.
У нас есть API, который возвращает данные клиента
@RequestMapping(value="/getData", method=RequestMethod.GET, produces="application/json")
public BatchResponse triggerBatchJob(
@RequestParam(value="updateFrom", required=false) @DateTimeFormat(pattern="yyyyMMdd") String updateFrom,
@RequestParam(value="updateTo", required=false) @DateTimeFormat(pattern="yyyyMMdd") String updateTo,
@RequestParam(value="customerType") (VALIDATE_HERE)String customerType) {
// ...
}
Мне нужно проверить, что значение customerType присутствует в Enum. Есть ли способ проверить то же самое с объявлением метода, как я сделал в случае с датой, а не с телом метода, используя метод getContentType или что-то в этом роде.
Пожалуйста помоги.