java 怎么在当前方法内部得到当前方法的参数类型列表

如题所述

java在当前方法内部想得到当前方法参数类型列表,可以通过对该方法所在的类进行反射来得到当前方法的参数列表。对当前对象进行反射可以得到类中所有成员变量和方法的对象数组,对当前方法的名字与方法数组进行比较,得到相同名字的方法(即当前方法),然后通过使用该方法对象的方法来获得参数列表。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-17
用反射机制,简单写了一个例子,不懂的可以看一下相关api public class OwerMethodParam {
public static void main(String[] args) {
new OwerMethodParam().test("bb");
}
public void test(String aa) {
Method[] methods = OwerMethodParam.class.getDeclaredMethods(); //取得这个类的所有方法
if (methods != null) {
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
if ("test".equals(method.getName())) { //取得本方法,这个方法是test,所以就用test比较
Class<?>[] paramsClass = method.getParameterTypes(); //取得参数列表的所有类
if (paramsClass != null) {
for (Class<?> class1 : paramsClass) {
System.out.println(class1.getName());
}
}
break;
}
}
}
}追问

是在方法内部得到,请考虑重载的问题。谢谢

本回答被提问者采纳
第2个回答  2013-03-27
一看你们就没有做过框架,获得当前方法在框架中相当有用,参考一个场景,如果我给当前这个方法加了一个注释,而其它的某个解析器需要通过这个方法的注释在这个方法执行前或者后去做一些处理(当然也可以用AOP来做),但是获得当前方法会更直接一些。
第3个回答  2011-08-17
不知道你为什么想在方法内部得到参数列表,难道为了练习下java基础?
我以前没碰到过这样的问题,不过你可以采用反射来做,可是要考虑到重载,
感觉你就好像在问,世界上和你名字一样的人有哪些,又怎么能够证明你的名字就是你
第4个回答  2011-08-17
。。什么叫得到参数类型列表,你既然能在方法内部了,你还看不到方法的参数列表吗?再说了,你如果想返回这个“参数列表”,你又用什么表示呢。。
相似回答