Подтвердить что ты не робот

У меня есть это предупреждение: вызов без varargs метода varargs с неточным типом аргумента для последнего параметра;

Это мой пример кода, где я получаю предупреждение.

Class aClass = Class.forName(impl);
Method method = aClass.getMethod("getInstance", null);
item = (PreferenceItem) method.invoke(null, null);

Предупреждение:

warning: вызов без varargs метода varargs с неточным типом аргумента для последнего параметра; cast to java.lang.Class для вызова varargs cast to java.lang.Class [] для вызова без varargs и для подавления этого предупреждения    Метод method = aClass.getMethod( "getInstance", null);

пожалуйста, помогите мне решить эту проблему.

4b9b3361

Ответ 1

Хорошо, предупреждение компилятора сообщает вам все, что вам нужно знать. Он не знает, следует ли обрабатывать null как Class<?>[] для передачи непосредственно в getMethod или как одну запись null в новом массиве Class<?>[]. Я подозреваю, что вы хотите прежнее поведение, поэтому отпустите null до Class<?>[]:

Method method = aClass.getMethod("getInstance", (Class<?>[]) null);

Если вы хотите создать Class<?>[] с единственным нулевым элементом, вы должны указать его на Class<?>:

Method method = aClass.getMethod("getInstance", (Class<?>) null);

В качестве альтернативы вы можете полностью удалить аргумент и позволить компилятору создать пустой массив:

Method method = aClass.getMethod("getInstance");