java的反射机制

来源:互联网 发布:数据库外模式是什么 编辑:程序博客网 时间:2024/06/15 20:09

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);}}


0 0
原创粉丝点击