Java如何使用基元类型作为参数通过反射调用方法

Java如何使用基元类型作为参数通过反射调用方法,java,reflection,Java,Reflection,我在一个类中有以下两种方法: public void Test(int i){ System.out.println("1"); } public void Test(Integer i){ System.out.println("2"); } 下面的代码行 this.getClass().getMethod("Test",Integer.class).invoke(this, 10); 打印2,如何使其打印1?奇怪但真实: this.getClass().getMethod

我在一个类中有以下两种方法:

public void Test(int i){
    System.out.println("1");
}
public void Test(Integer i){
    System.out.println("2");
}
下面的代码行

this.getClass().getMethod("Test",Integer.class).invoke(this, 10);
打印
2
,如何使其打印
1

奇怪但真实:

this.getClass().getMethod("Test",int.class).invoke(this, 10);

要使用反射调用以基元类型作为参数的方法,请执行以下操作:

你可以用
int.class

this.getClass().getMethod("Test",int.class).invoke(this, 10);
Integer.类型

this.getClass().getMethod("Test",Integer.TYPE).invoke(this, 10);
这同样适用于其他基元类型