
正文
java反射生成代码 java反射的用途及实现
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
JAVA反射机制代码
1.就是说根据你传进去的对象类型返回相应的代理。这个不是在静态编译时决定的, 而是运行时决定的,所以叫做动态。this指的是当前InvocationHandler对象,也就是new MyInvocationHandler()出来的。
2.执行RealSubject中的say方法,因为这个时候实际的对象是bind(new RealSubject())。
3.没有调用自己啊。
相关问答
Q1: java反射怎么实现的
Java中反射有如下几种实现方式:
1、通过Class.forName()方法加载字符串,就可以得到该字符串做代表的Class对象。
2、通过类名调用class属性得到该类的Class对象。
例如:Class? clazz = String.class也可以得到String类的Class对象。
3、调用实例的getClass()方法。
例如:Date date = new Date();
Class? clazz = date.getClass();
通过上边的两句代码就可以得到date实例的Class对象。
Q2: 用java实现类和对象的反射,代码最好有注释,谢谢
给你一个小的实例代码:
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
public class test {
public static void main(String args[]) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException {
Foo foo = new Foo("这个一个Foo对象!");
Class clazz = foo.getClass();
Method m1 = clazz.getDeclaredMethod("outInfo");
Method m2 = clazz.getDeclaredMethod("setMsg", String.class);
Method m3 = clazz.getDeclaredMethod("getMsg");
m1.invoke(foo);
m2.invoke(foo, "重新设置msg信息!");
String msg = (String) m3.invoke(foo);
System.out.println(msg);
}
}
class Foo {
private String msg;
public Foo(String msg) {
this.msg = msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void outInfo() {
System.out.println("这是测试Java反射的测试类");
}
}
关于java反射生成代码和java反射的用途及实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





