靜態方法不與特定例項關聯,不能引用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,首先靜態方法是...