Я пытаюсь создать метод, который будет создавать экземпляр класса на основе данного интерфейса. На данный момент я пытаюсь создать экземпляр класса на основе имени класса, но я продолжаю получать ClassNotFoundException
.Создание экземпляра класса в Java с отражением
Может ли кто-нибудь сказать мне, что я делаю неправильно?
public class Message implements IExample{
@Override
public String showMessage() {
return "merge";
}
}
public static void main(String[] args) throws Exception{
Object mess = Class.forName("Message").newInstance();
}
EDIT
Я попытался:
Object mess = Class.forName("com.MyExample.Message").newInstance();
Object mess = Class.forName("Project.MyExample.Message").newInstance();
Object mess = Class.forName("MyExample.Message").newInstance();
Они все бросить ClassNotFoundException
и окно, которое говорит мне "Источник не найден" с помощью кнопки (Edit Source Path Lookup ..), которые позволяют мне просматривать документы.
И основной класс и Message
классов в проекте под названием «Проект» и пакет под названием MyExample
Вы уверены, что класс 'Message' находится на пути к классу? Кроме того, вам требуется полное имя класса; 'com.whatever.Message' – raffian
какой у вас пакет?где живет ваш «Message.class»? – user902383
Являются ли сообщение класса и основной метод внутри общего класса? если да, посмотрите здесь: http://stackoverflow.com/questions/2097982/is-it-possible-to-create-an-instance-of-nested-class-using-java-reflection –