如何在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返回类型

有人能帮我找到JAVA中方法的返回类型吗。我试过这个。但不幸的是,它不起作用。请引导我

 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());
}