如何在方法内部获取当前方法的参数列表的类类型在方法内部实现与method.getParameterTypes();相同的效果;
3 回答
当年话下
TA贡献1890条经验 获得超9个赞
提个思路:
final String methodName = new Exception().getStackTrace()[0].getMethodName();
然后反射拿到这个方法对应的 Method 实例。
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
public class Common{
// 获取某方法的参数类型数组
public Class[] getParameterTypes(){
return this.getParameterTypes(1);
}
public Class[] getParameterTypes(int i){
StackTraceElement stackTraceElement = new Throwable().getStackTrace()[i];
try {
Method[] ms = Class.forName(stackTraceElement.getClassName()).getMethods();
for (Method m : ms) {
if (m.getName().equals(stackTraceElement.getMethodName())) {
return m.getParameterTypes();
}
}
}catch (ClassNotFoundException ex){}
return new Class[0];
}
}
有问题或有更简便的方法请指出,谢谢;
添加回答
举报
0/150
提交
取消
