我正在使用此代码来检查方法参数类型,但它似乎不起作用。
任何想法我做得不对吗?
Class<?>[] parameter_types = m.getParameterTypes();
if (parameter_types[0].equals(Integer.class)) {
//DO SOMETHING
}
m
是一个带整数类型参数的方法:
public void m(int param);
答案 0 :(得分:3)
Integer
和int
是不同的类型。 Integer
是引用类型java.lang.Integer
。 int
是一种基本类型,并且有自己的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!