java的反射机制,
分享于 点击 32984 次 点评:189
java的反射机制,
0.反射的概念
反射是应用与框架的基石1.反射是什么?
反射就是将类的class文件加载到内存中,并解析文件里面的数据。它是一门技术,它包含一套API(反射API)。
Class文件里有哪些重要数据呢?
成员变量,构造方法,一般方法,包等信息。
通过反射技术能干什么?
创建类的对象,操作对象的属性和调用方法。
谁使用了反射?
所有的框架:Struts, Spring, Hernate等
所有web应用:web.xml
2.反射技术快速入门
反射API中包含下面一些类:Class, Field, Constructor, Method等
它们在java.lang.reflect包下(Class在java.lang包下)
使用反射实现下面的业务功能:
我手头上有两个类,一个Student类,一个是Teacher类,我需要创建其中某个类的对象干活,但到底创建哪个类的对象,不由我自己决定,而由另一个人通过QQ发信息告诉我。
问题:
1 他发什么数据给我
2 我拿到数据后该怎么做
反射类(Class,Field, Construtor, Method)是如何设计出来的呢?
3.源码示例
之前不妨先看一张图来加深了解
person类
public class Person{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void say(){
System.out.println("I can say something...");
}
}
import java.lang.reflect.Constructor;
public class ReflactTest {
public static void main(String[] args) throws Exception {
//给一个全类名,就可以用发射创建对象
String classId="com.test.Person";
//加载全类名获得对应的Class对象
Class clazz=Class.forName(classId);
//得到加载类的无参构造器
Constructor constructor=clazz.getConstructor();
//通过获取的构造器对象创建类的对象
Object obj=constructor.newInstance();
System.out.println(obj);
}
}
相关文章
- 暂无相关文章
用户点评