java复习

2020-08-02反射获取成员方法并使用

2020-08-11  本文已影响0人  智障猿

通过反射获取成员方法

方法 说明
getMethod(String name, Class<?>...parameterTypes) 返回一个 方法对象,它反映此表示的类或接口的指定公共成员方法 类对象。
getMethods() 返回包含一个数组 方法对象反射由此表示的类或接口的所有公共方法 类对象,包括那些由类或接口和那些从超类和超接口继承的方法
getDeclaredMethod(String name, 类<?>... parameterTypes) 返回一个 方法对象,它反映此表示的类或接口的指定声明的方法 类对象。
getDeclaredMethods() 返回包含一个数组 方法对象反射的类或接口的所有声明的方法,通过此表示 类对象,包括公共,保护,默认(包)访问和私有方法,但不包括继承的方法

通过反射实例化的对象调用反射获得的方法

方法 说明
invoke(Object obj, Object... args) 在具有指定参数的方法对象上调用此方法对象表示的底层方法。
public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        //通过反射获得构造方法对象
        Class<?> aClass = Class.forName("commmm.Student");
        //实例化
        Constructor<?> declaredConstructor = aClass.getDeclaredConstructor();
        Object o = declaredConstructor.newInstance();
        //获得方法对象
        Method method = aClass.getMethod("method1");
        method.invoke(o);
        Method method2 = aClass.getMethod("method2", String.class);
        method2.invoke(o,"hello");
    }
}
上一篇下一篇

猜你喜欢

热点阅读