我在类中有以下两种方法:
public void Test(int i){
System.out.println("1");
}
public void Test(Integer i){
System.out.println("2");
}
Run Code Online (Sandbox Code Playgroud)
以下代码行
this.getClass().getMethod("Test",Integer.class).invoke(this, 10);
Run Code Online (Sandbox Code Playgroud)
打印2,如何打印1?
Muk*_*oel 107
使用反射调用使用基本类型作为参数的方法:
你可以用
int.class
this.getClass().getMethod("Test",int.class).invoke(this, 10);
Run Code Online (Sandbox Code Playgroud)
要么 Integer.TYPE
this.getClass().getMethod("Test",Integer.TYPE).invoke(this, 10);
Run Code Online (Sandbox Code Playgroud)
同样适用于其他原始类型
Mis*_*ble 11
奇怪但真实:
this.getClass().getMethod("Test",int.class).invoke(this, 10);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32791 次 |
| 最近记录: |