什么是注解

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。
我们可以通过代码反射来获取到注解的内容,然后做自定义处理。

如何自定义注解

target:注解可以使用的对象
rentention:注解存在的地方,runtime表示一直。

  1. @Target({ElementType.FIELD})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. public @interface MyReflect {
  4. String type() default "ignore";
  5. int age() default 27;
  6. }

如何使用自定义注解

  1. Class<User> userClass = User.class;
  2. Field name = userClass.getDeclaredField("name");
  3. # 获取注解
  4. MyReflect annotation = name.getAnnotation(MyReflect.class);
  5. System.out.println(annotation.type());
  6. System.out.println(annotation.age());

私有变量赋值

  1. import java.lang.reflect.Field;
  2. public class ReflectionTest {
  3. public static void main(String[] args) throws Exception {
  4. PrivateTest pt = new PrivateTest();
  5. Class<PrivateTest> clazz = PrivateTest.class;
  6. Field field = clazz.getDeclaredField("name");
  7. field.setAccessible(true);
  8. field.set(pt, "world");
  9. field.setAccessible(false);
  10. System.out.println(pt.getName());
  11. }
  12. }