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版本(缺少自动装箱)?