你需要理解的Java反射机制知识总结
本篇将从以下几个方面讲述反射的知识:
-
class 的使用
-
方法的反射
-
构造函数的反射
-
成员变量的反射
一、什么是class类
在面向对象的世界里,万物皆对象。类是对象,类是java.lang.Class类的实例对象。另外class类只有java虚拟机才能new出来。任何一个类都是Class 类的实例对象。这实例对象有三种表达方式:
- public class User{
- }
- public class ClassTest{
- User u=new User();
- //方式1:
- Class c1=User.class;
- //方式2:
- Class c2=u.getClass();
- //方式3:
- Class c3=Class.forName("com.forezp.User"); //可以通过类的类型创建该类的实例对象 User user=(User)c1.newInstance();
- }
二、class类的动态加载
Class.forName(类的全称);该方法不仅表示了类的类型,还代表了动态加载类。编译时刻加载类是静态加载、运行时刻加载类是动态加载类。
三、获取方法信息
基本的数据类型,void关键字都Class 类的实例;可以通过getame();getSimpleName()获取类的名称。
- Class c1=String.class;
- Class c2=int.class;