Java 如何将getMethod()与基元类型一起使用?

Java 如何将getMethod()与基元类型一起使用?,java,reflection,Java,Reflection,这是一节课: class Foo { public void bar(int a, Object b) { } } Class c = Foo.class; Class[] types = { ... }; // what should be here? Method m = c.getMethod("bar", types); 现在我尝试从类中“反射”此方法: class Foo { public void bar(int a, Object b) { } } Class

这是一节课:

class Foo {
  public void bar(int a, Object b) {
  }
}
Class c = Foo.class;
Class[] types = { ... }; // what should be here?
Method m = c.getMethod("bar", types);
现在我尝试从类中“反射”此方法:

class Foo {
  public void bar(int a, Object b) {
  }
}
Class c = Foo.class;
Class[] types = { ... }; // what should be here?
Method m = c.getMethod("bar", types);

只有一个
int.class

Class[] types = { int.class, Object.class };
另一种选择是


这同样适用于其他原语。

该方法的参数是原语
short
而不是对象
short

反射将找不到该方法,因为您指定了一个短对象。
getMethod()
中的参数必须精确匹配

编辑:
问题变了。最初,问题是找到一个只接受一个原语short的方法。

如何调用该方法?如果我想将布尔值传递给这样一个方法,它将不起作用:invoke(null,newobject[]{myString,myBool})。。。布尔值不能转换为对象。@Racky对我很有用,至少在语法上是这样。您是否使用低于5的Java版本(缺少自动装箱)?