黑马程序员_Java反射技术(一)

来源:互联网 发布:ubuntu 删除当前用户 编辑:程序博客网 时间:2024/05/16 10:49

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

反射就是把Java中和各种成分映射到相应的Java类。字节码就是Java对象在内存的表现形式。

例如:一个java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法。

java类的Class类提供一系列方法来获得变量,方法,构造方法,修饰符,包等信息。这些信息就是用相应的实例对象来表示,它们是Field,Method,Contructor,Package等。

得到对象的字节码方法: 
             1:类名.class 例如:System.class 
             2:对象.getClass 例如:new Date().getClass() 
             3:Class.forName("类名")    例如:Class.forName("java.util.Date");

下面举例说说:

Class<?> clazz = String.class;//得到字符串类的字节码

Constructor constructor = clazz.getConstructor(StringBuffer.class);//用反射方式取得字符串类的带有一个参数为StringBuffer类型的构造函数

Method methodCharAt=clazz.getMethod("charAt", int.class);//用反射方式用取得字符串类的charAt方法

methodCharAt.invoke("abcd",3);//用反射方式调用字符串类的charAt方法


原创粉丝点击