2010-04-22 77 views
146

在C#中我們有Type.FullNameType.Name以獲取名稱空間(java-world中的包)中的類型名稱(本例中爲類)。如何在沒有包的情況下獲取課程的名稱?

什麼是java相當於Type.Name

很明顯,必須有一個比使用Class.getName()更好的方法,並且手動刪除包名稱。

+1

我做了一個快速的搜索,是不是由我在谷歌發現這樣認爲這是一個免費搭乘第一結果印象深刻。 – 2010-04-22 11:31:35

+5

忘記Google! **關於Java標準類庫的答案的第一個地方是Java API文檔(又稱爲javadocs):http://java.sun.com/javase/reference/api.jsp – 2010-04-22 12:06:20

回答

267

Class.getSimpleName()

返回在源代碼中給出的基礎類的簡單名字。如果基礎類是匿名的,則返回空字符串。

數組的簡單名稱是附加了「[]」的組件類型的簡單名稱。特別是組件類型爲匿名的數組的簡單名稱是「[]」。

它實際上從名稱中剝離了包信息,但是這對您是隱藏的。

+0

它還映射內部一個匿名類的名稱爲一個空字符串,並執行數組類名。 – 2010-04-22 12:03:17

+1

我不知道它可能會返回一個空字符串,恕我直言,這是一個設計缺陷。如果沒有簡單的名字,它應該拋出異常。 – finnw 2010-04-22 13:20:30

15

以下函數將在JDK 1.5及更高版本中使用。

public String getSimpleName() 
10

如果使用的StackTraceElement,使用:

String fullClassName = stackTraceElement.getClassName(); 
String simpleClassName = fullClassName.substring(fullClassName.lastIndexOf('.') + 1); 

System.out.println(simpleClassName); 
相關問題