1.写出获取Class实例的三种常见方式
①Class clazz1 = String.class; //用的不多,写死了,不能提现动态性
②Class clazz2 = person.getClass();
③Class clazz3 = Class.forName(String classPath); //体现反射的动态性,用的最多
2.谈谈你对Class类的理解
Class实例对应着加载到内存中的一个运行时类。
3.创建Class对应运行时类的对象的通用方法,代码实现。以及这样操作,需要对应
的运行时类构造器方面满足的要求。
Object obj = clazz.newInstance(); //创建了对应的运行时类的对象
①必须有空参的构造器
②权限修饰符的权限要够。通常设置为public
4.如何调用方法show()
类声明如下:
class User{
public void show(){
System.out.println(“我是一个中国人!”);
}}
Class clazz = User.class;
Method show = clazz.getDeclaredMethod(“show”);
show.setAccessible(true);
show.invoke(user);
5.总结:创建类的对象的方式?\
方式一: new + 构造器
方式二:要创建Xxx类的对象,可以考虑:Xxx、Xxxs、XxxFactory、XxxBuilder类
中是否有静态方法的存在。可以调用其静态方法,创建XXX对象。
方式三:通过反射