反射--

在java中,Object类是所有类的父类,同样,所有类的实例化对象也都是Class类的实例

 

因此,这样一来就会牵扯到向上转型和向下转型的概念

由于向下转型的不安全因素,在这里泛型也会接踵而来

实例2:Class类的实例化

 

由于Class类没有构造方法,所以实例化Class类的方式有点特殊,有三种方式:

 

  • 对象.getClass( )

  • 类.Class

  • forName( )

  • 其中,forName( )方法需要重点掌握,因为它可以在类不确定的情况下实例化Class,更具灵活性

Class类中有一个方法叫做newInstance( ),它可以用来创建一个Class类对象的新实例

 

怎么说呢?Class对象包含的内容就是反射好的那个类,我们要构造那个类的新实例(新对象)

这样就通过无参数的形式构造了一个新的对象,如同正常模式中

通过无参构造方法来构造新对象一样

类中除了有无参构造方法,还会存在有参数的构造方法

那在反射中如何通过有参数的形式构造对象呢?

 

无论是有参还是无参,这里所使用的构造方法,原本的类里面必须对应存在

 

那么,如何才能知道原有类里面的构造方法,普通方法,继承的父类等详细信息呢?

通过反射获取类的结构我们这里要导入一个新的包java.lang.reflect

 

 

 

 

 

 

 

posted @ 2017-02-21 17:54  ATJAVA  阅读(186)  评论(0编辑  收藏  举报