Почему у меня не работает Class.forName()?
-
05-09-2019 - |
Вопрос
Я пытаюсь создать экземпляр класса из переменной и написал тестовый код.Но, к сожалению, это не работает.Вот код:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
К сожалению, на второй строке происходит сбой с java.lang.ClassNotFoundException
.
Можете ли вы сказать мне, что я делаю неправильно?
Решение
Является ли CommandDownloadHttp полный имя класса, т.е.у него нет пакета?Если оно делает есть пакет, включите в него:
Class.forName("foo.bar.CommandDownloadHttp");
(Я предполагаю, что у вас есть более веская причина делать это в вашем реальном коде, кстати - очевидно, что в этом случае вам на самом деле не нужно получать класс путем отражения :)
Другие советы
Ваш класс в пакете?И этот пакет импортированный?Итак, это работает в строке 1.Но вам нужно полное имя в Class.forName("my.package.to.CommandDownloadHttp").
Не связан с StackOverflow