反射

    xiaoxiao2021-04-15  33

    package cn.itcast_04; import java.lang.reflect.Constructor; import java.lang.reflect.Method; /* * 需求:通过反射获取成员方法 */ public class ReflectDemo { public static void main(String[] args) throws Exception { // 获取字节码文件对象 Class c = Class.forName("cn.itcast_01.Person"); // 获取所有的方法 // Method[] methods = c.getMethods();//获取自已的包括父亲的公共方法 // Method[] methods = c.getDeclaredMethods();// 获取自已的所有方法 // for (Method method : methods) { // System.out.println(method); // } // 获取无参构造方法并创建对象 Constructor con = c.getConstructor(); Object obj = con.newInstance(); /* * Person p = new Person(); p.show(); */ // 获取单个方法并使用 // public void show() // public Method getDeclaredMethod(String // name,Class<?>...parameterTypes) // 第一个参数表示的方法名,第二个参数表示的是方法的参数的class类型 Method m1 = c.getDeclaredMethod("show"); // obj.m1()//错误 // public Object invoke(Object obj, Object... args) // 返回值是Object接收,第一个参数表示对象是谁,第二个参数表示调用该方法的实际参数 m1.invoke(obj);// 调用obj方法m1方法 } }
    转载请注明原文地址: https://ju.6miu.com/read-671107.html

    最新回复(0)