具有默认值的Java JAX-RS自定义参数

具有默认值的Java JAX-RS自定义参数,java,jax-ws,resteasy,Java,Jax Ws,Resteasy,假设我有这个(这只是一个样本): 用户是 class User{ ... public static User valueOf(String user){ if(user == null) return DEFAULT_USER; return dao.findById(user); } } 如果我做了/api/address?user=amir一切都正常,但是如果我不为用户提供值,那么我希望使用默认用户。但这并不是真正意义上的valueOf。有办法解决这个问题吗?JA

假设我有这个(这只是一个样本):

用户是

class User{
...
 public static User valueOf(String user){
   if(user == null) return DEFAULT_USER;
   return dao.findById(user);
 }    
}
如果我做了/api/address?user=amir一切都正常,但是如果我不为用户提供值,那么我希望使用默认用户。但这并不是真正意义上的valueOf。有办法解决这个问题吗?

JAX-RS有@annotation:

@QueryParam("user") @DefaultValue("__DEFAULT")



class User{
...
 public static User valueOf(String user){
   if(user == null||"__DEFAULT".equals(user) return DEFAULT_USER;
   return dao.findById(user);
 }    
}

这对我有什么帮助?如果缺少用户,则我需要默认用户。您的代码默认使用“amir”,这就是我现在正在做的。我希望有更好的解决办法。但我想这样就可以了。根据您提供的代码和“DefaultValue”的文档,如果用户不在URL上,则会将其分配为null。您给人的印象是,您希望使用参数(String)null调用valueOf方法,这不是省略“DefaultValue”的方式。
@QueryParam("user") @DefaultValue("__DEFAULT")



class User{
...
 public static User valueOf(String user){
   if(user == null||"__DEFAULT".equals(user) return DEFAULT_USER;
   return dao.findById(user);
 }    
}