我想創建一個方法,它將基於給定的接口實例化一個類。目前我正在嘗試基於類名來實例化一個類,但我一直在收到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 –