java反射机制

来源:互联网 发布:td lte网络 编辑:程序博客网 时间:2024/06/02 19:42

1、反射就是将java类中成分反射成相应的java类。

 

2、反射的基类Class代表在内存中的字节码,一个类只能生成一份字节码,例如:String str1 = "abc"; String str2 = "bcd"; 虽然str1与str2表示两个不同的对象,但是他们得到的字节码是相同的。

 

3、获得字节码的方法:
    1、类名.class
    2、对象.getClass()
    3、Class.forName("java.lang.String")

 

4、在学习反射的时候需要明白需要为什么要使用反射,反射能带来什么好处?

     例如在程序中方法可以使用对象直接调用,为什么还需要使用反射获得Method对象呢?这不是多此一举吗?而且使用反射会降低程序的性能。

     看过张老师讲解视频之后才有所了解:这是因为在开发中要使用框架,我们程序员自己写的类要被框架所调用,他怎么能调用我们自己写的类呢, 框架这种技术已经出来好多年了,他又事先不知道我们程序员会写什么样类。这是就有一个办法那就是反射,使用反射不需要知道你的具体类名是什么,通常是从配置文件读取相关信息,然后使用Class.forName方法,生成一个实例对象。

 

程序实例:写一程序在一个类中调用另一类的main方法

 

传入参数为cn.itcast.TestArgs 即为args[0]

 

运行的结果:

111

222

333