作者ogamenewbie (._.)
看板java
标题Re: [问题] 书中一段有关 Reflection 的叙述
时间Mon Jan 11 01:47:45 2010
※ 引述《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
1F:推 erotic:感谢大大的指点,我懂了! 01/11 01:58