0%

java反射

文章字数:147,阅读全文大约需要1分钟

反射是在软件运行时可以获取类信息的一种java机制

获取类信息的方式

有两种:

  1. RTTI,编译器在编译时打开和检查.class文件
  2. 反射,运行时打开和检查.class文件

反射获取信息的代码

1
2
3
4
5
6
7
8
9
public void testInvoke() throws Exception {
Class clazz = Main.class;
Object object = clazz.newInstance();
Field[] fields = clazz.getFields();
Method[] methods = clazz.getMethods();
Method method = clazz.getDeclaredMethod("sayHello", String.class, String.class);
method.setAccessible(true);
method.invoke(object,"324","345");
}

method.setAccessible(true)在反射对象中设置 accessible 标志允许具有足够特权的复杂应用程序(比如 Java Object Serialization 或其他持久性机制)以某种通常禁止使用的方式来操作对象。私有方法不用开启。