靜態方法獲取類路徑

2021-07-31 18:21:36 字數 691 閱讀 9500

在一般的非靜態方法中獲取類路徑,用:

this.getclass().getresource("/").getpath().substring(1);
如何在靜態方法中獲取類路徑?由於是靜態方法,所以無法獲得類的例項,如果用:

類名.class.getclass().getresource("/").getpath().substring(1);
會報空指標異常;如果用:

類名.class.getclassloader().getresource("/").getpath().substring(1);
在本地測試可以,專案部署後就不行了。解決辦法是,可以使用匿名內部類的方式(參考:

string path = new object() 

}.getpath().substring(1);

另外,

this.getclass().getresource("/").getpath().substring(1);
獲取的是主目錄(classes目錄),而

this.getclass().getresource("").getpath().substring(1);
獲取的是檔案路徑。

靜態屬性 類方法 靜態方法

靜態屬性 既可以訪問例項屬性也可以訪問類屬性 self 1 靜態屬性 資料屬性 2 class room 3 def init self,name,owner,width,length,height 4 self.name name 5 self.owner owner 6 self.width w...

靜態屬性 類方法 靜態方法

class room tag 1 def init self,name,owner,width,length,heigh self.name name self.width width self.owner owner self.length length self.heigh heigh 既可以訪...

類方法,靜態方法

coding utf 8 class test object walk 為普通方法只能被物件instance呼叫,play 為靜態方法可以被物件和classname呼叫,eat為類方法,可以被物件和classname呼叫。此外pep8中一種程式設計風格,self通常用作例項方法的第一引數,cls通常...