Java如何通过以原始types作为参数的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

使用reflection来调用具有原始types的方法作为参数:

你可以使用int.class

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

Integer.TYPE

 this.getClass().getMethod("Test",Integer.TYPE).invoke(this, 10); 

同样适用于其他原始types

奇怪而真实:

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