gpt4 book ai didi

java - 如何使用类中的参数返回特定方法的名称

转载 作者:行者123 更新时间:2023-11-30 02:56:45 26 4
gpt4 key购买 nike

我想使用类中的参数返回特定方法的名称。

我有一个程序,它也返回方法名称,但包括类名称和包名称。代码是:

import java.lang.reflect.*;

public class ClassDemo {
public static void main(String[] args) {
ClassDemo cls = new ClassDemo();
Class c = cls.getClass();

try {
// parameter type is null
Method m = c.getMethod("show", null);
System.out.println("method = " + m.toString());
}
catch(NoSuchMethodException e) {
System.out.println(e.toString());
}
try {
// method Long
Class[] cArg = new Class[1];
cArg[0] = Long.class;
Method lMethod = c.getMethod("showLong", cArg);
System.out.println("method = " + lMethod.toString());
}
catch(NoSuchMethodException e) {
System.out.println(e.toString());
}
}

public Integer show() {
return 1;
}

public void showLong(Long l) {
this.l = l;
}
long l = 78655;
}

结果是:

method = public java.lang.Integer ClassDemo.show()
method = public void ClassDemo.showLong(java.lang.Long)

我的问题是,有什么方法可以获取方法名称及其关联参数,但没有类名称和包名称?

我的意思是在这种情况下结果将是:

method = show()
method = showLong(Long)

我看到了问题Getting the name of the current executing method但这不是我想要的。谁能给我任何解决方案吗?

最佳答案

System.out.print(m.getName() + "(");
Class<?>[] params = m.getParameterTypes();
for (int i = 0; i < params.length; i++) {
if (i > 0) {
System.out.print(", ");
}
System.out.print(params[i].getSimpleName());
}
System.out.println(")");

关于java - 如何使用类中的参数返回特定方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37042545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com