龙空技术网

「Java基础」Java 反射的几种方式

码向未来 73

前言:

现时兄弟们对“java反射方式”大概比较关切,姐妹们都需要剖析一些“java反射方式”的相关资讯。那么小编同时在网络上收集了一些对于“java反射方式””的相关内容,希望大家能喜欢,看官们一起来学习一下吧!


* 初始类

public class ReflectDemo {
//静态方法
public static Integer myStaticMethod(Integer a, Integer b) {
System.out.println(a+b);
return a + b;
}
//实例方法
public Integer myInstanceMethod(Integer a, Integer b) {
System.out.println(a+b);
return a + b;
}
}
* 传统方式
ReflectDemo object = new ReflectDemo();
// 方法对象
Method method = object.getClass().getDeclaredMethod("myInstanceMethod", Integer.class, Integer.class);
// 调用(对象实、参数)
method.invoke(object, 1, 1);
* 现代方式
ReflectDemo object = new ReflectDemo();
// MethodHandle 方法句柄
// MethodType 方法签名(返回值类型、参数类型)
MethodHandle myInstanceMethod = MethodHandles.lookup().findVirtual(ReflectDemo.class, "myInstanceMethod", MethodType.methodType(Integer.class, Integer.class, Integer.class));
// 调用(对象实、参数)
myInstanceMethod.invoke(object, 1, 1);


* 开源工具(JOOR )

Reflect.on(ReflectDemo.class).create().call("myInstanceMethod", 1, 1).get();

标签: #java反射方式