Java 编程下通过反射获取一个类中的方法名和对应参数名

java

实际编程中如果我们要使用系统中未暴露的方法,我们可以通过反射来使用这些方法,但在使用过程中我们很难确定方法对用的参数类型,以下的代码可以帮你得到这些信息:

package cn.sunzn.reflectcase;

import java.lang.reflect.Method;

public class GetMethod {

public static void main(String[] args) {

getMethodInfo("java.util.HashSet");

}

/**

* 传入全类名获得对应类中所有方法名和参数名

*/

@SuppressWarnings("rawtypes")

private static void getMethodInfo(String pkgName) {

try {

Class clazz = Class.forName(pkgName);

Method[] methods = clazz.getMethods();

for (Method method : methods) {

String methodName = method.getName();

System.out.println("方法名称:" + methodName);

Class<?>[] parameterTypes = method.getParameterTypes();

for (Class<?> clas : parameterTypes) {

String parameterName = clas.getName();

System.out.println("参数名称:" + parameterName);

}

System.out.println("*****************************");

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

}

传入 java.util.HashSet 的运行结果如下:

方法名称:add

参数名称:java.lang.Object

*****************************

方法名称:clone

*****************************

方法名称:clear

*****************************

方法名称:iterator

*****************************

方法名称:remove

参数名称:java.lang.Object

*****************************

方法名称:contains

参数名称:java.lang.Object

*****************************

方法名称:isEmpty

*****************************

方法名称:size

*****************************

方法名称:equals

参数名称:java.lang.Object

*****************************

方法名称:hashCode

*****************************

方法名称:removeAll

参数名称:java.util.Collection

*****************************

方法名称:toString

*****************************

方法名称:addAll

参数名称:java.util.Collection

*****************************

方法名称:containsAll

参数名称:java.util.Collection

*****************************

方法名称:retainAll

参数名称:java.util.Collection

*****************************

方法名称:toArray

参数名称:[Ljava.lang.Object;

*****************************

方法名称:toArray

*****************************

方法名称:wait

*****************************

方法名称:wait

参数名称:long

参数名称:int

*****************************

方法名称:wait

参数名称:long

*****************************

方法名称:getClass

*****************************

方法名称:notify

*****************************

方法名称:notifyAll

*****************************

以上是 Java 编程下通过反射获取一个类中的方法名和对应参数名 的全部内容, 来源链接: utcz.com/z/393595.html

回到顶部