如何使用Java反射机制获取一个类中全部方法呢?

java-教程王 Java教程 发布时间:2021-12-08 22:03:57 阅读数:17638 1
下文讲述使用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()
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202112/2039.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者