首頁 > Java > java教程 > Class.getResource() 與 ClassLoader.getResource():資源載入的主要差異是什麼?

Class.getResource() 與 ClassLoader.getResource():資源載入的主要差異是什麼?

DDD
發布: 2025-01-01 13:13:11
原創
492 人瀏覽過

Class.getResource() vs. ClassLoader.getResource(): What's the Key Difference in Resource Loading?

Class.getResource() 和ClassLoader.getResource() 之間的差異

Class.getResource() 和ClassLoader.getResource()都是用來取得與類別關聯的資源。然而,它們的行為有細微的差別。

Class.getResource() 接受的資源名稱可以是相對的也可以是絕對的。相對資源名稱是相對於類別的包進行解釋的。另一方面,ClassLoader.getResource() 始終將資源名稱視為絕對名稱。

為了說明這種差異:

// Find the resource "xyz.txt" relative to the class's package
String resource1 = foo.bar.Baz.class.getResource("xyz.txt").getPath();

// Find the resource "xyz.txt" absolutely
String resource2 = foo.bar.Baz.class.getClassLoader().getResource("foo/bar/xyz.txt").getPath();
登入後複製

在這種情況下,resource1 將引用檔案「xyz.txt」。 txt”包中的“foo.bar”,而resource2將引用相同的文件,但使用絕對路徑。

在目錄列表中快取

您對目錄清單中快取的觀察值是正確的。時,載入類別後對目錄結構所做的任何變更都不會反映出來。名稱的資源。將委託給ClassLoader.getSystemResource(java.lang.String)。 。

以上是Class.getResource() 與 ClassLoader.getResource():資源載入的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板