注解和反射 入门

反射

名字能看懂的sout试试就知道了

获取

  • 获取构造方法
  • 获取变量
  • 获取方法

构造方法

1
2
constructor.setAccessible(true); // 强制使用private
constructor.newInstance(); // 创建对象

变量

1
2
3
field.setAccessible(true); // 强制使用private
field.set([cat], "[猫]");
field.get([cat]);

方法

1
2
method.setAccessible(true); // 强制使用private
method.invoke([cat], [args]); // 调用方法

注解

1
2
@Target({ElementType.Type})
@Retention(RetentionPolicy.RUNTIME)

存在此注解

1
class.isAnnotationPresent([MyAnnotation.class])

获取此注解

1
class.getDeclaredAnnotation([MyAnnotation.class]);