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);