如何使用Java反射机制获取一个类中全部方法呢?
下文讲述使用Java反射获取一个类中“所有方法”的方法分享,如下所示:
实现思路: forName():获取指定的Class对象 getMethods(); 或 getDeclaredMethods();例:
package com.java265.other; import java.lang.reflect.Method; public class testDom4J { public static void main(String[] args) throws Exception { Class<?> clazz = Class.forName("com.java265.other.User"); // 只能获取public Method[] method1s = clazz.getMethods(); // Method method1 = clazz.getMethod("testFun2", null); for (Method m : method1s) { System.out.println(m); } System.out.println("----------------------------------------"); Method[] method2s = clazz.getDeclaredMethods(); // Method method2 = clazz.getDeclaredMethod("testFun1", null); for (Method m : method2s) { System.out.println(m); } } } class User { public User() { } private void testFun1() { } public void testFun2() { } protected void testFun3() { } } ------运行以上代码,将输出以下信息---- public void com.java265.other.User.testFun2() public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final void java.lang.Object.wait() throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() ---------------------------------------- private void com.java265.other.User.testFun1() protected void com.java265.other.User.testFun3() public void com.java265.other.User.testFun2()
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。