Re: [問題] 從文字檔讀取演算法
我用CLASSLOADER將指定路徑的*.class檔(*表表檔名)
可是遭遇到一個問題
URL url1 = new URL("file:/D:/workspace/"); //CLASS檔所在路徑
URLClassLoader urlClassLoader1 = new URLClassLoader(new URL[] {url1});
Class cls =urlClassLoader1.loadClass("ttt"); //CLASS名稱
Object bbb= cls.newInstance(); //將載入的CLASS newInstance()
以上這一段主要在載入class檔,而我的ttt.class內容是
public class ttt
{
public static void main(String[] args)
{
}
public void sort(int seq[])
{
System.out.println(seq[0]);
}
ttt()
{
System.out.println("ttt無參數");
}
}
裡面只有一個建構子和一個方法,可是建構子ttt()卻會讓我
Object bbb= cls.newInstance() 這一句無法過newInstance
,但是當我把建構子砍掉以後,就又可以過了,我以為是我忘記加null
所以就把cls.newInstance(null),沒想出現不適用引數null的訊息
我查了一下,通常是把建構子和方法分開放在不同class裡面
就是有建構子就沒有方法,有方法就沒有建構子
再分別用getconstructor抓建構子和invoke抓方法
是我這樣放在一起是錯的嗎?本來可以過的
放在一起卻不能用cls.newInstance()了,這樣除了分開放沒有別的辦法了嗎?
一直出現錯誤訊息
java.lang.IllegalAccessException: Class constructor1 can not access a
member of class ttt with modifiers ""
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: eicsarch 來自: 118.170.2.4 (08/20 01:01)
→
08/20 01:58, , 1F
08/20 01:58, 1F
→
08/20 07:22, , 2F
08/20 07:22, 2F
→
08/20 07:34, , 3F
08/20 07:34, 3F
推
08/20 09:09, , 4F
08/20 09:09, 4F
推
08/20 11:36, , 5F
08/20 11:36, 5F
推
08/20 11:46, , 6F
08/20 11:46, 6F
→
08/20 11:57, , 7F
08/20 11:57, 7F
→
08/20 11:59, , 8F
08/20 11:59, 8F
推
08/20 13:23, , 9F
08/20 13:23, 9F
→
08/20 16:06, , 10F
08/20 16:06, 10F
推
08/20 21:33, , 11F
08/20 21:33, 11F
→
08/21 09:26, , 12F
08/21 09:26, 12F
推
08/21 09:29, , 13F
08/21 09:29, 13F
→
08/21 09:40, , 14F
08/21 09:40, 14F
→
08/21 09:42, , 15F
08/21 09:42, 15F
→
08/21 09:43, , 16F
08/21 09:43, 16F
→
08/21 09:44, , 17F
08/21 09:44, 17F
→
08/21 09:46, , 18F
08/21 09:46, 18F
→
08/21 09:49, , 19F
08/21 09:49, 19F
推
08/21 11:20, , 20F
08/21 11:20, 20F
討論串 (同標題文章)