xxxxx.class.getClassLoader().getResource(fileName);
听了大半天,还是搞不懂这里教程里面所说的.class这个东西说是对某一类编译好的对象的描述 ,后面的那几个懂了,就是在xxxx.class这里卡住,哪位高手能详细解释一下为什么要 xxxxx.class 究竟有什么用?这是马士兵坦克大战里面的。
听了大半天,还是搞不懂这里教程里面所说的.class这个东西说是对某一类编译好的对象的描述 ,后面的那几个懂了,就是在xxxx.class这里卡住,哪位高手能详细解释一下为什么要 xxxxx.class 究竟有什么用?这是马士兵坦克大战里面的。
如果不知道的话,可以去先理解下相关资料。那么: xxxxx.class 是为了限定用负责装载了该类的ClassLoader,如果你的资源文件跟该类是打包在一个jar中,这样可以保证其装载成功可能性。
如果你直接用 ClassLoader.getSystemResource(fileName),那么只能得到系统级的资源文件。
public abstract class ClassLoaderextends Object类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。 每个 Class 对象都包含一个对定义它的 ClassLoader 的引用。 数组类的 Class 对象不是由类加载器创建的,而是由 Java 运行时根据需要自动创建。数组类的类加载器由 Class.getClassLoader() 返回,该加载器与其元素类型的类加载器是相同的;如果该元素类型是基本类型,则该数组类没有类加载器。 应用程序需要实现 ClassLoader 的子类,以扩展 Java 虚拟机动态加载类的方式。 类加载器通常由安全管理器使用,用于指示安全域。 ClassLoader 类使用委托模型来搜索类和资源。每个 ClassLoader 实例都有一个相关的父类加载器。需要查找类或资源时,ClassLoader 实例会在试图亲自查找类或资源之前,将搜索类或资源的任务委托给其父类加载器。虚拟机的内置类加载器(称为 "bootstrap class loader")本身没有父类加载器,但是可以将它用作 ClassLoader 实例的父类加载器。