用java实现类和对象的反射,代码最好有注释,谢谢给java反射优化代码你一个小java反射优化代码的实例代码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对象java反射优化代码!");
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反射机制代码1.就是说根据java反射优化代码你传进去java反射优化代码的对象类型返回相应的代理 。这个不是在静态编译时决定的,而是运行时决定的,所以叫做动态 。this指的是当前InvocationHandler对象,也就是new MyInvocationHandler()出来的 。
2.执行RealSubject中的say方法,因为这个时候实际的对象是bind(new RealSubject()) 。
3.没有调用自己啊 。
Java Reflection (JAVA反射)机制详解反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力 。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备 。下面具体介绍一下java的反射机制 。这里你将颠覆原来对java的理解 。
Java的反射机制的实现要借助于4个类:class , Constructor , Field,Method;其中class代表的时类对 象 , Constructor-类的构造器对象 , Field-类的属性对象,Method-类的方法对象 。通过这四个对象我们可以粗略的看到一个类的各个组 成部分 。
Class:程序运行时,java运行时系统会对所有的对象进行运行时类型的处理 。这项信息记录了每个对象所属的类,虚拟机通常使用运行时类型信息选择正 确的方法来执行(摘自:白皮书) 。但是这些信息我们怎么得到啊 , 就要借助于class类对象了啊 。在Object类中定义了getClass()方法 。我 们可以通过这个方法获得指定对象的类对象 。然后我们通过分析这个对象就可以得到我们要的信息了 。
比如:ArrayList arrayList;
Class clazz = arrayList.getClass();
然后我来处理这个对象clazz 。
当然了Class类具有很多的方法,这里重点将和Constructor,Field,Method类有关系的方法 。
Reflection 是 Java 程序开发语言的特征之一 , 它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性 。Java 的这一能力在实际应用中也许用得不是很多,但是个人认为要想对java有个更加深入的了解还是应该掌握的 。
1.检测类:
reflection的工作机制
考虑下面这个简单的例子,让我们看看 reflection 是如何工作的 。
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; im.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
按如下语句执行:
推荐阅读
- csscanvas背景透明,canvas 背景透明
- 微信公众号怎么加人,微信公众号怎么添加好友
- erp系统中如何删除历史记录,erp删除的数据能恢复吗
- chatgpt超级指令,tag指令教程
- go语言免费吗 go语言软件下载
- 苹果手机录屏录什么东西好,苹果手机录屏什么软件好
- 健身房大冒险游戏大小对比,健身大冒险只有4个关卡
- 平板鸿蒙系统笔记,平板的鸿蒙系统
- java小学期代码 java编程代码题库及答案