java 修饰符

Java语言提供了很多修饰符,主要分为以下两类:

  • 访问修饰符
  • 非访问修饰符

修饰符用来定义类、方法或者变量,通常放在语句的最前端。

判断修饰符是否存在

通过反射拿到对象的变量、方法等,有时候想知道某个变量是否被某个修饰符修饰。通过另外一个类:Modifier,我们就能判断修饰符是否存在。
实体类:

  1. @Setter
  2. @Getter
  3. public class Response<T> {
  4. private static final String OK = "200";
  5. private static final String ERROR = "600";
  6. private static final String NO_AUTH = "607";
  7. @ApiModelProperty(value = "响应码", example = "200")
  8. private String code;
  9. @ApiModelProperty(value = "响应消息", example = "成功")
  10. private String msg;
  11. @ApiModelProperty(value = "响应体")
  12. private T data;
  13. }

测试:

  1. Class<?> clazz = Class.forName(Response.class.getName());
  2. Field ok = clazz.getDeclaredField("OK");
  3. int okModifiers = ok.getModifiers();
  4. System.out.println("okModifiers是否是静态变量:" + Modifier.isStatic(okModifiers));
  5. Field code = clazz.getDeclaredField("code");
  6. int codeModifiers = code.getModifiers();
  7. System.out.println("codeModifiers是否是私有变量:"+ Modifier.isPrivate(codeModifiers) +
  8. ", codeModifiers是否是静态变量:" + Modifier.isStatic(codeModifiers));

执行结果:

  1. okModifiers是否是静态变量:true
  2. codeModifiers是否是私有变量:true, codeModifiers是否是静态变量:false