66

クラスには次の2つのメソッドがあります。

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

4

2 に答える 2

126

リフレクションを使用してプリミティブ型をパラメータとしてメソッドを呼び出すには:

あなたが使用することができます int.class

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

またInteger.TYPE

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

他のプリミティブ型にも同じことが当てはまります

于 2012-11-16T06:23:19.143 に答える
15

奇妙だが真実:

this.getClass().getMethod("Test",int.class).invoke(this, 10);
于 2012-11-16T06:18:47.740 に答える