1、Class类如果要完成反射,那么必须了解Class类实例1:通过对象取得包名和类名12345678910111213package org.siu; class Test{ } public class Demo{ public static void main(String[]args){ Testt= new Test(); System.out.println(t.getClass()); System.out.println(t.getClass().getName()); }}编译结果如下,注意包的编译方式即可此
2、处的getClass()方法是默认继承自Object类的 在java中,Object类是所有类的父类,同样,所有类的实例化对象也都是Class类的实例因此,这样一来就会牵扯到向上转型和向下转型的概念由于向下转型的不安全因素,在这里泛型也会接踵而来(不过我想说的是,此处的泛型设计很刺眼!尼玛,整个java的语法设计同样刺眼,超恶心!!!) 实例2:Class类的实例化由于Class类没有构造方法,所以实例化Class类的方式有点特殊,有三种方式:对象.getClass()类.ClassforName()123456class Test{ } public class Demo{
3、 public static void main(String[]789101112131415161718192021222324252627args){ //方式一: Testt= new Test(); Class extends Test>c1=t.getClass(); System.out.println(c1); //方式二: //为了避免特殊性,这里不用Test类,而用java库中的String类 Classc2=String.
5、法需要重点掌握,因为它可以在类不确定的情况下实例化Class,更具灵活性 Class类的应用Class类中有一个方法叫做newInstance(),它可以用来创建一个Class类对象的新实例怎么说呢?Class对象包含的内容就是反射好的那个类,我们要构造那个类的新实例(新对象)实例3:Class类的无参构造对象12public class Demo{ public static void main(String[]345678910111213141516171819202122232425args){ //实例化Class对象,forName()方法会抛异常