java如何获取方法参数名

java如何获取方法参数名,第1张

用反射机制,简单写了一个例子,不懂的可以看一下相关api public class OwerMethodParam {

public static void main(String[] args) {

new OwerMethodParam()test("bb");

}

public void test(String aa) {

Method[] methods = OwerMethodParamclassgetDeclaredMethods(); //取得这个类的所有方法

if (methods != null) {

for (int i = 0; i < methodslength; i++) {

Method method = methods[i];

if ("test"equals(methodgetName())) { //取得本方法,这个方法是test,所以就用test比较

Class<>[] paramsClass = methodgetParameterTypes(); //取得参数列表的所有类

if (paramsClass != null) {

for (Class<> class1 : paramsClass) {

Systemoutprintln(class1getName());

}

}

break;

}

}

在java中,可以通过反射获取到类、字段、方法签名等相关的信息,像方法名、返回值类型、参数类型、泛型类型参数等,但是不能够获取方法的参数名。在实际开发场景中,有时需要根据方法的参数名做一些 *** 作,比如像spring-mvc中,@RequestParam、@PathVariable注解,如果不指定相应的value属性,默认就是使用方法的参数名做为>

Class t = ClassforName("包名TEST"); Method m = tgetMethod("getDetail",null); minvoke(); 方法有参数没啊有的话把null换成参数列表,注意是参数对应的Class类组成的对象数组

public static void printMethods(Class cl)

{

Method[] methods =clgetDeclaredMethods();//返回一个包含方法对象的数组

for(Method m : methods)//循环该类的每个方法

{

Class retType = mgetReturnType();//该方法的返回类型,

Sting name = mgetName();//获得方法名

Systenoutprint(" "+ModifiertoString(mgetModifiers());打印方法修饰符

Systemoutprint(" "+retTypegetName() + " " + name +"(");

Class[] paramTypes = mgetParameterTypes();//获得一个方法参数数组(getparameterTypes用于返回一个描述参数类型的Class对象数组)

for(int j = 0 ; j < paramTypeslength ; j++)

{

if ( j > 0 ) Systemoutprint(" , "); //如果有多个参数,中间则用逗号隔开,否则直接打印参数

Systemoutprint (paramTypes[ j ]getName);

}

Systemoutprintln (" );");

}}

//////////getparameterTypes方法用于返回一个描述参数类型的Class对象数组)

以上就是关于java如何获取方法参数名全部的内容,包括:java如何获取方法参数名、java怎么获取方法参数名、java 如何只知类名和方法名得到对象和执行方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10138716.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存