我想创建一个方法,它将基于给定的接口实例化一个类。目前我正在尝试基于类名来实例化一个类,但我一直在收到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();
}
编辑
我曾尝试:
Object mess = Class.forName("com.MyExample.Message").newInstance();
Object mess = Class.forName("Project.MyExample.Message").newInstance();
Object mess = Class.forName("MyExample.Message").newInstance();
他们都扔ClassNotFoundException
并告诉我一个窗口 “源未找到” 一个按钮(编辑源查找路径.. )让我来浏览文档。
两个主类和Message
类是在一个名为“工程”项目和一个包叫做MyExample
你确定类'Message'在类路径上吗?另外,您需要完整的类名称; 'com.whatever.Message' – raffian
你的包裹是什么?你的'Message.class'居住在哪里? – user902383
类是Message还是普通类中的主要方法?如果是这样,请看看这里:http://stackoverflow.com/questions/2097982/is-it-possible-to-create-an-instance-of-nested-class-using-java-reflection –