通过反射获取无参无返回值成员方法并使用
生活随笔
收集整理的這篇文章主要介紹了
通过反射获取无参无返回值成员方法并使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package cn.learn_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.learn_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 getMethod(String name,Class<?>... parameterTypes)// 第一個參數表示的方法名,第二個參數表示的是方法的參數的class類型Method m1 = c.getMethod("show");// obj.m1(); // 錯誤// public Object invoke(Object obj,Object... args)// 返回值是Object接收,第一個參數表示對象是誰,第二參數表示調用該方法的實際參數m1.invoke(obj); // 調用obj對象的m1方法System.out.println("----------");// public void method(String s)Method m2 = c.getMethod("method", String.class);m2.invoke(obj, "hello");System.out.println("----------");// public String getString(String s, int i)Method m3 = c.getMethod("getString", String.class, int.class);Object objString = m3.invoke(obj, "hello", 100);System.out.println(objString);// String s = (String)m3.invoke(obj, "hello",100);// System.out.println(s);System.out.println("----------");// private void function()Method m4 = c.getDeclaredMethod("function");m4.setAccessible(true);m4.invoke(obj);}
}
?
總結
以上是生活随笔為你收集整理的通过反射获取无参无返回值成员方法并使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过反射获取成员变量并使用
- 下一篇: 通过反射运行配置文件内容