如何在JAVA中找到Method的返回类型?

时间:2013-02-06 13:26:02

标签: java reflection

任何人都可以帮我找到JAVA中方法的返回类型。我试过这个。但不幸的是它不起作用。请指导我。

 Method testMethod = master.getClass().getMethod("getCnt");

  if(!"int".equals(testMethod.getReturnType()))
   {
      System.out.println("not int ::" + testMethod.getReturnType());
   }

输出

不是int :: int

7 个答案:

答案 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())