反射 类对象,类加载时把类的信息保存在jvm中就会产生一个相应的对象(记录类信息的对象),只要类对象存在则类信息就在 获得类对象应用的三种方式: ①Class c1=ArrayList.class; ②Object l=new ArrayList();Class c2=l.getClass(); ③String className="java.util.ArrayList"; Class c3=Class.forName(className); Class[] cs=c1.getInterfaces();//获得接口 Class c=Animal.class; Field[] fs=c.getDeclaredFields();//获得属性的数组 Method[] ms=c.getDeclaredMethods();//获得本类所有公私有的方法,getMethods()获得父类所有公开的方法 Constructor[] cons=c.getDeclaredConstructors();//获得构造方法的数组 Object o2=c.newInstance();//创建类的对象 Method m1=c.getDeclaredMethod("study");//找到方法名是study的方法 m1.setAccessible(true);//设置为可以调用 m1.invoke(o2);//调用m1方法 Method m2=c.getDeclaredMethod("study", String.class); m2.setAccessible(true); m2.invoke(o2,"CoreJava");//调用m2的方法,方法的参数是CoreJava
|