Java как вызвать метод путем отражения с примитивными типами в качестве аргументов
У меня есть два метода в классе:
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
?
Ответы
Ответ 1
Чтобы вызвать метод с примитивными типами в качестве параметров с использованием отражения:
Вы можете использовать
int.class
this.getClass().getMethod("Test",int.class).invoke(this, 10);
или Integer.TYPE
this.getClass().getMethod("Test",Integer.TYPE).invoke(this, 10);
то же относится и к другим примитивным типам
Ответ 2
Странно, но верно:
this.getClass().getMethod("Test",int.class).invoke(this, 10);