當我只將類X的名稱存儲在字符串中時,是否有方法從另一個類(在同一個項目但不同的包中)運行X方法的方法 - 說我不知道什麼類存在,直到我的程序啓動,我掃描.java文件的目錄,然後將這些名稱存儲到字符串中。因此,例如我有類A,它具有函數'main'和'method1' - 我的程序從它的文件中獲取類A的名稱到字符串s中。然後,我希望能夠運行main或method1函數,但不確定如何操作s以達到目的......我嘗試過的一件事是這樣,但我只是得到Exception錯誤,不知道它是否在正確的軌道,有什麼建議?:如何在運行時僅在字符串變量中查找其名稱時如何使用類?
//gets the filename from JFileChooser method_fc
File file = method_fc.getSelectedFile();
try {
Class c = Class.forName(file.getName());
Method method = c.getDeclaredMethod("main");
Object instance = c.newInstance();
Object result = method.invoke(instance);
} catch (Exception e) {
System.out.println("Cannot access class: "+e.getMessage());
}
建議1:文章中的完整例外,不只是「我只是得到了異常錯誤」。 –
第一次猜測:從文件名剝離.java或.class ... –