Java как вызвать метод путем отражения с примитивными типами в качестве аргументов - программирование
Подтвердить что ты не робот

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?

4b9b3361

Ответ 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);