Re: [問題] 書中一段有關 Reflection 的敘述
※ 引述《erotic (eRoTiC)》之銘言:
(這邊我不引了)
Reflection 的功能我目前是有拿來做過以 String 動態選擇 Class 執行特定行為.
從上述文字大體上可以認為 R 類別內部會以某種 Reflection 的方式呼叫 M 類別.
作了部份修改後肯定也可以依需要呼叫其他任意類別. 甚至是不存在的類別.
如果每個有可能呼叫到的類別的要確認其存在, 這一整個是沒完沒了.
(把 "Mouse" 換成 main 的 args[0] 之類的)
那呼叫到了不存在的類別, 會出現 『找不到指定的類別』 ...?
去原程式碼中去看那也只是去觸發到了 ClassNotFoundException 這個例外
所以才會印出那樣的文字出來.
大體上猜測是 Class.forName("Mouse"); 時根據 classpath 找不到 M 類別
實際上我並未執行程式測試就是了.
至於"編譯 ReflectEX1.java 檔時,將無從得知 Mouse 類別的相關資訊。"
這句話我完全看不懂。而且我不太去研究編譯期間發生的事情。
: 上面這段總共有六行,後面五行在解釋第一行,
: 可是我看不懂,既然 Reflection 機制不需要知道類別的資訊,
: 為何在只有編譯、執行 ReflectEX1.java 的情況下,會丟出例外,
我想你應該是指單獨對 R 檔編譯, 並執行才會觸發例外事件.
第一次看的時候還以為編譯的過程也出了一些問題.
: 必須在編譯 Mouse.java 後,才能正常執行 ReflectEX1.java?
編譯以後 classpath 找到 M 類別, Class c 可以正確的給值
應該就不會觸發 ClassNotFoundException.
不過一樣, 我並未實際執行程式碼驗證過.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.32.238
推
01/11 01:58, , 1F
01/11 01:58, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):