什么是注解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。
我们可以通过代码反射来获取到注解的内容,然后做自定义处理。
如何自定义注解
target:注解可以使用的对象
rentention:注解存在的地方,runtime表示一直。
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyReflect {
String type() default "ignore";
int age() default 27;
}
如何使用自定义注解
Class<User> userClass = User.class;
Field name = userClass.getDeclaredField("name");
# 获取注解
MyReflect annotation = name.getAnnotation(MyReflect.class);
System.out.println(annotation.type());
System.out.println(annotation.age());
私有变量赋值
import java.lang.reflect.Field;
public class ReflectionTest {
public static void main(String[] args) throws Exception {
PrivateTest pt = new PrivateTest();
Class<PrivateTest> clazz = PrivateTest.class;
Field field = clazz.getDeclaredField("name");
field.setAccessible(true);
field.set(pt, "world");
field.setAccessible(false);
System.out.println(pt.getName());
}
}