smorey Ответов: 1

Newinstance() возвращает null


пробовать
{
Файл URL-адрес URL-адрес =.рай().toURL();
URL-адрес[] URL-адреса = новый URL-адрес[]{URL-адрес};
Загрузчик классов КЛ = новый urlclassloader(URL-адресов, число clockmodel.класс.getClassLoader());

Класса в<?&ГТ; КНК = класс.forName(pluginNamespace + "." + баночка + "." + название, правда, ХЛ);
Войти.писать("объект плагина====&ГТ;"+ЦБС);
Класс<? расширяет ClockModel> sub = cls.asSubclass(ClockModel.class);
Конструктор<? расширяет ClockModel> ctor = sub.getConstructor();
модель = конструктор.метод newinstance();
}
поймать(исключение бывший)
{
Log.write("часы", Log.Строгость.Ошибка, "не удалось создать объект плагина:" + pluginNamespace + "." +
jar + "." + имя);

Войти.printException(экс);

возвращать null;
}

возвращаемая модель;
}

Что я уже пробовал:

модель = конструктор.newInstance(); это возвращает null. Может ли кто-нибудь помочь

Richard MacCutchan

Попробуйте использовать стандартный языковой метод создания экземпляра класса, он, вероятно, будет работать.

1 Ответов

Рейтинг:
0

OriginalGriff

Нет, потому что мы не можем запустить ваш код - черт возьми, у нас есть только крошечная его часть, а не та, которая возвращает нуль, и единственный способ узнать, что происходит, - это посмотреть на него во время выполнения кода.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Как вы его используете, зависит от вашей компиляторной системы, но быстрый поиск в Google имени вашей IDE и "отладчика" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!