任何人都可以帮我找到JAVA中方法的返回类型。我试过这个。但不幸的是它不起作用。请指导我。
Method testMethod = master.getClass().getMethod("getCnt");
if(!"int".equals(testMethod.getReturnType()))
{
System.out.println("not int ::" + testMethod.getReturnType());
}
输出
不是int :: int
答案 0 :(得分:13)
方法getReturnType()
返回Class
您可以尝试:
if (testMethod.getReturnType().equals(Integer.TYPE)){
.....;
}
答案 1 :(得分:4)
if(!int.class == testMethod.getReturnType())
{
System.out.println("not int ::"+testMethod.getReturnType());
}
答案 2 :(得分:2)
返回类型为Class<?>
...以获取字符串try:
if(!"int".equals(testMethod.getReturnType().getName()))
{
System.out.println("not int ::"+testMethod.getReturnType());
}
答案 3 :(得分:1)
getReturnType()
返回一个Class对象,并且您正在与一个字符串进行比较。
你可以尝试
if(!"int".equals(testMethod.getReturnType().getName() ))
答案 4 :(得分:1)
getReturnType
方法返回Class<?>
对象,而不是String
对象,您要将其与之进行比较。 Class<?>
对象永远不会等于String
对象。
为了比较它们,你必须使用
!"int".equals(testMethod.getReturnType().toString())
答案 5 :(得分:1)
getretunType()返回Class<T>
。您可以测试它是否等于Integer类型
if (testMethod.getReturnType().equals(Integer.TYPE)) {
out.println("got int");
}
答案 6 :(得分:1)
getReturnType()
返回Class<?>
而不是String
,因此您的比较不正确。
无论
Integer.TYPE.equals(testMethod.getReturnType())
或者
int.class.equals(testMethod.getReturnType())