I have the following two methods in a class:
我在类中有以下两种方法:
public void Test(int i){
System.out.println("1");
}
public void Test(Integer i){
System.out.println("2");
}
The following line of code
以下代码行
this.getClass().getMethod("Test",Integer.class).invoke(this, 10);
prints 2
, how to make it print 1
?
打印2,如何打印1?
2 个解决方案
#1
89
To call a method with primitive types as parameters using reflection :
使用反射调用具有基本类型作为参数的方法:
You could use int.class
你可以使用int.class
this.getClass().getMethod("Test",int.class).invoke(this, 10);
or Integer.TYPE
或Integer.TYPE
this.getClass().getMethod("Test",Integer.TYPE).invoke(this, 10);
same applies for other primitive types
同样适用于其他原始类型
#2
9
Strange but true:
奇怪但真实:
this.getClass().getMethod("Test",int.class).invoke(this, 10);
#1
89
To call a method with primitive types as parameters using reflection :
使用反射调用具有基本类型作为参数的方法:
You could use int.class
你可以使用int.class
this.getClass().getMethod("Test",int.class).invoke(this, 10);
or Integer.TYPE
或Integer.TYPE
this.getClass().getMethod("Test",Integer.TYPE).invoke(this, 10);
same applies for other primitive types
同样适用于其他原始类型
#2
9
Strange but true:
奇怪但真实:
this.getClass().getMethod("Test",int.class).invoke(this, 10);