Java如何通过原始类型作为参数的反射来调用方法

时间:2012-11-16 06:15:22

标签: 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

2 个答案:

答案 0 :(得分:97)

使用反射调用原始类型作为参数的方法:

你可以使用 int.class

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

Integer.TYPE

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

同样适用于其他原始类型

答案 1 :(得分:11)

奇怪但真实:

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