如何在JAVA中找到方法的返回类型?
有人能帮我找到JAVA中方法的返回类型吗。我试过这个。但不幸的是,它不起作用。请引导我如何在JAVA中找到方法的返回类型?,java,reflection,Java,Reflection,有人能帮我找到JAVA中方法的返回类型吗。我试过这个。但不幸的是,它不起作用。请引导我 Method testMethod = master.getClass().getMethod("getCnt"); if(!"int".equals(testMethod.getReturnType())) { System.out.println("not int ::" + testMethod.getReturnType()); } 输出: 非int::int返回类型
Method testMethod = master.getClass().getMethod("getCnt");
if(!"int".equals(testMethod.getReturnType()))
{
System.out.println("not int ::" + testMethod.getReturnType());
}
输出:
非int::int返回类型为
类
。。。要获取字符串,请尝试:
if(!"int".equals(testMethod.getReturnType().getName()))
{
System.out.println("not int ::"+testMethod.getReturnType());
}
getReturnType()
返回一个类对象,并将其与字符串进行比较。
你可以试试
if(!"int".equals(testMethod.getReturnType().getName() ))
getReturnType
方法返回一个Class
对象,而不是一个与之比较的String
对象。类
对象永远不会等于字符串
对象
为了比较它们,你必须使用
!“int”.equals(testMethod.getReturnType().toString())
getretunType()返回Class
。您可以测试它是否等于整数的类型
if (testMethod.getReturnType().equals(Integer.TYPE)) {
out.println("got int");
}
方法
getReturnType()
返回Class
您可以尝试:
if (testMethod.getReturnType().equals(Integer.TYPE)){
.....;
}
getReturnType()
返回Class
而不是字符串,因此您的比较不正确
或者
Integer.TYPE.equals(testMethod.getReturnType())
或
int.class.equals(testMethod.getReturnType())在将实例与已知常量相等时,通常会反转equals以避免潜在的NPE(即Integer.TYPE.equals(testMethod.getReturnType())
)
if(!int.class == testMethod.getReturnType())
{
System.out.println("not int ::"+testMethod.getReturnType());
}