Java反射 - 检查方法参数类型

时间:2015-01-03 16:35:32

标签: java reflection

我正在使用此代码来检查方法参数类型,但它似乎不起作用。

任何想法我做得不对吗?

    Class<?>[] parameter_types = m.getParameterTypes();
    if (parameter_types[0].equals(Integer.class)) {
       //DO SOMETHING
    }

m是一个带整数类型参数的方法:

public void m(int param);

2 个答案:

答案 0 :(得分:3)

Integerint是不同的类型。 Integer是引用类型java.lang.Integerint是一种基本类型,并且有自己的Class对象。

if (parameter_types[0].equals(int.class)) {

答案 1 :(得分:3)

尝试

   String parameter_types = m.getParameterClassName(1);
      if (parameter_types.equals(int.class)) {
      //DO SOMETHING
   }

有关详细信息:click!