类的对象:基于某个类new出来的对象,也成为实例对象
类对象:类加载的产物,里面存储了类的对象的所有信息(包名/类名/父类/接口/属性)
获取类对象
1.类名.class
java">Class c1 = ArrayList.class;
2.通过getClass()方法
java">ArrayList list = new ArrayList();
Class c2 = list.getClass();
3.Class.forName(类的全限定名)
java">Class c3 = Class.forName("java.util.ArrayList");
常用方法:
getInterfaces();
获取类实现的所有接口
getSuperClass();
获取父类对象的类对象
getDeclaredFields();
获取所有的属性
getFields();
获取所有公开属性
getDeclaredMethods();
获取所有的方法
getMethods();
获取公开方法
getConstructors():
获取所有的构造方法
访问方法对象
invoke(Obkect o):
执行当前Method对象代表的方法
setAccessible(true):
设置当前Method对象代表的方法,可以访问
java">Class c =Class.forName("全类名")
Object o = c.newInstance();
//获取m1方法
Method m1 = c.getDeclaredMethod("m1");
m1.invoke(o);
Method m2=c.getDeclaredMethod("m2",int.class,String.class);
m2
m2.setAccessible(true);
m2.invoke(o,5,"abc");