天天看點

getResource(String name)用法及源碼分析

Output:

Conclusion:

java.lang.Class<T>的URL  getResource(String name)時可以使用參數:

(1)"/":代表項目根目錄,也就是ClassPath的root

(2)以"/"開頭的包路徑

java.lang.ClassLoader的URL getResource(String name)時使用參數:

(1)"":代表項目根目錄,也就是ClassPath的root

(2)不以"/"開頭的包路徑

源碼解析:

java.lang.Class

從源碼看:

(1)java.lang.Class的getResource(String name)方法調用了ClassLoader的getResource(String name)方法;

(2)java.lang.Class的resolveName(String name)方法去掉了name中的第一個字元“/”,

java.lang.Classloader的getResource(String name)的參數name首字母沒有“/”

Extension section:

如果路徑中有空格及中文在某些場景會出來問題。

可以嘗試在getResource(Sting name).toURL()來解決。

<a href="http://www.cnblogs.com/softidea/p/3888829.html">http://www.cnblogs.com/softidea/p/3888829.html</a>