在Java靜態方法中獲取當前類名

2021-04-25 02:54:53 字數 821 閱讀 7581

靜態方法不與特定例項關聯,不能引用this,要得到當前類名,沒有直接的辦法。

通過查資料和試驗,可以用下面幾種方式:

1

public

static

void

testgetclassname()210

}.getclassname();

11system.out.println(clazzname);

12//

方法2:通過throwable的方法getstacktrace()

13string clazzname2 

=new

throwable().getstacktrace()[

1].getclassname();

14system.out.println(clazzname2);

15//

方法3:通過分析匿名類名稱()

16string clazzname3 

=new

object()    

22}.getclassname();

23system.out.println(clazzname3);24}

分別呼叫10萬次,

方法1:219ms 

方法2:953ms

方法3:31ms

比較:1)方法1不知有沒有什麼使用限制?

2)方法2通過異常機制獲取呼叫棧,效能最差,但能提供其它方法所不具有的功能,還可以獲取方法名,行號等等;但這麼使用多少有點不太常規;

3)方法3只是簡單分析了一下匿名類的名稱,顯然要簡單多,事實上效能也是最高的;

Java中獲取當前時間的常用方法

方法1 mm要大寫,ss要小寫,dd大寫表示一年中的第幾天,dd小寫表示一月中的第幾天 大寫hh和小寫hh表示24小時制和12小時制 date date new date 格式化日期 dateformat sdf new dateformat yyyy mm dd hh mm ss system.o...

靜態方法獲取類路徑

在一般的非靜態方法中獲取類路徑,用 this.getclass getresource getpath substring 1 如何在靜態方法中獲取類路徑?由於是靜態方法,所以無法獲得類的例項,如果用 類名.class.getclass getresource getpath substring 1...

java 中靜態方法

有乙個這個類的這個方法,靜態方式屬於類,那麼每次呼叫都會開啟session?還是只有乙個session呢?是否只有乙個session取決於 怎麼實現,如果opensession 中單例方式。有判斷的話是否是當前session為空,為空則new乙個,不為空則返回當前session。ok,首先靜態方法是...