反射--

反射--_第1张图片

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

 

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

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

实例2:Class类的实例化

 

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

 

  • 对象.getClass( )

  • 类.Class

  • forName( )

  • 反射--_第2张图片

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

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

 

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

反射--_第3张图片

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

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

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

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

反射--_第4张图片

 

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

 

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

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

反射--_第5张图片

反射--_第6张图片

反射--_第7张图片

反射--_第8张图片

 

反射--_第9张图片

 

反射--_第10张图片

 

 反射--_第11张图片

 

反射--_第12张图片

 

反射--_第13张图片

 

转载于:https://www.cnblogs.com/ipetergo/p/6425401.html

你可能感兴趣的:(java)