Ответ 1
Из JSR 311 API аннотированный тип @QueryParam
должен либо:
- Будьте примитивным типом
- У конструктора, который принимает один аргумент
String
- Имейте статический метод с именем
valueOf
илиfromString
, который принимает единственный аргументString
(см., например,Integer.valueOf(String)
) - Be
List<T>
,Set<T>
илиSortedSet<T>
, гдеT
удовлетворяет 2 или 3 выше. Полученная коллекция доступна только для чтения.
В вашем случае я бы пошел со вторым вариантом, обернув перечисление в простой класс:
public class StatusList {
private List<STATUS> statusList;
public StatusList(String toParse) {
//code to split the parameter into a list of statuses
}
public List<STATUS> getStatusList() {
return this.statusList;
}
}
Затем измените свой метод на:
@GET
public Resource resource(@QueryParam("status") StatusList statusList){
}