反射----获取class对象的五种方法

反射Reflection

配合注解使用会格外强大,反射注解,天生一对

类如何加载?

动态语言和静态语言。我知道是什么,不用总结了。

由于反射,Java可以称为准动态语言。

允许通过反射获得类的全部信息

一个c类只有一个Class对象,对应加载到JVM中的.class文件。一个类只有一个Class对象,这就意味着,不管你创建多少的对象,他都只有一个类对象。

实例化的对象----->通过getClass()方法获取到类------->得到完整的“包类”名称。

通过反射获取类,

五种获取class对象的方法。打印类对象出现全包名

public static void main(String[] args) throws ClassNotFoundException {
    Person person = new Student ();
    System.out.println ("这个人是"+person.name);
    //方法一:由对象实例.getClass(),获取
    Class c1 = person.getClass ();
    //方法二L:由类的完整路径名获取Class.forName("Reflection.Student");
    Class c2 = Class.forName ("Reflection.Student");
    System.out.println (c1);
    System.out.println (c2);
	//方法三:直接由已知类名获取类的实例
    Class c3 = Student.class;
    System.out.println (c3);
    //方法四:基本的包装类都有一个Type属性,包装类获取类的实例
    Class c4 = Integer.TYPE;
    System.out.println (c4);
    //方法五:由子类获取父类的Class对象
    Class c5 = c1.getSuperclass ();
    System.out.println (c5);
}
结果:
class Reflection.Student
class Reflection.Student
class Reflection.Student
int
class Reflection.Person
posted @ 2020-04-18 15:03  li33的博客  阅读(599)  评论(0编辑  收藏  举报