日期:2014-05-20  浏览次数:20692 次

关于xxxxx.class.getClassLoader().getResource(fileName),请教大家。
xxxxx.class.getClassLoader().getResource(fileName);
  听了大半天,还是搞不懂这里教程里面所说的.class这个东西说是对某一类编译好的对象的描述 ,后面的那几个懂了,就是在xxxx.class这里卡住,哪位高手能详细解释一下为什么要 xxxxx.class 究竟有什么用?这是马士兵坦克大战里面的。



------解决方案--------------------
你是否知道ClassLoader是有层级关系的?而且也可以有同级但相互无关的多个?
如果不知道的话,可以去先理解下相关资料。

那么: xxxxx.class 是为了限定用负责装载了该类的ClassLoader,如果你的资源文件跟该类是打包在一个jar中,这样可以保证其装载成功可能性。


如果你直接用 ClassLoader.getSystemResource(fileName),那么只能得到系统级的资源文件。
------解决方案--------------------
xxxxx.class 是获得xxxx这个类对应的Class对象,任何一个类被装载进入虚拟机,都会为这个类生成一个java.lang.Class对象来指代这个类,通过这个对象,你可以访问和控制xxxx这个类的一些特性。

关于这点,你需要去学习一下反射,另外如果你不懂反射,那我也很难相信后面的几句话你也弄懂了,或许那是你一个似是而非的理解,所以,先从基本的开始吧。
------解决方案--------------------
xxx.class就是你项目中的一个类的对象,相当于我现在有一口锅,里面放着很多菜,我要拿到这口锅,我随便拿个菜,也就是所谓的xxx.class,通过这个菜来拿来这口锅。有点傻。。