【发布时间】:2015-03-11 21:14:18
【问题描述】:
我有以下代码:
String methodName = "main";
Method[] methods = classHandle.getMethods();
for (Method m : methods)
{
System.out.println(m.getName().equals(methodName);
}
Method classMethod = null;
try
{
classMethod = classHandle.getMethod(methodName);
}
catch(Exception e)
{
}
System.out.println(classMethod == null);
第一个打印输出true,但第二个打印也打印true。
为什么会这样?
【问题讨论】:
-
在方法不存在时调用
classHandle.getMethod(假设classHandle是Class)应该导致抛出NoSuchMethodException,而不是返回null。
标签: java class reflection methods