定义中有两个参数value
和optional
。
但在使用中,只有一个参数,所以我有两个问题:
如果使用的参数少于定义,参数名称不存在,如何确定使用哪一个?
在上面的代码中,value是一个数组类型,但AuthRequired.AuthType.Server
是一个元素,它们如何匹配?
有一个注释定义:
Java代码:
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface AuthRequired {
enum AuthType {
Server(null),
Student(UserType.Student),
Teacher(UserType.Teacher),
SchoolMaster(UserType.SchoolMaster),
Operator(UserType.Operator);
private UserType userType;
AuthType(UserType userType) {
this.userType = userType;
}
public UserType getUserType() {
return userType;
}
}
AuthType[] value() default {};
boolean optional() default false;
}
及其用法:
Java代码:
@AuthRequired(AuthRequired.AuthType.Server)
@RequestMapping(method = RequestMethod.GET, value = "/isUserSlaveOf")
boolean isUserSlaveOf(
@RequestParam String slaveUserIds,
...
...
答案 0 :(得分:0)
value
参数。如果您指定单个参数,这也是合法的。否则,您需要为每个参数使用<parameterName>=<value>
。{}
括号表示法指定单个元素数组外,您还可以简单地编写元素。 @AuthRequired(value=AuthRequired.AuthType.Server)
相当于@AuthRequired(value={AuthRequired.AuthType.Server})
。