2011-08-01 36 views
47

如果已經提出此問題,請致歉。我搜索了這些問題並找不到答案。從抽象類獲取混凝土類名稱

在Java中,抽象類中可以獲取擴展它的具體類的實例嗎?

如果是這樣,我可以看到一個代碼示例嗎?

回答

63

是的,你可以通過調用this.getClass()來做到這一點。這將爲您提供運行時類型爲thisClass實例。

如果您只想要班級的名字,您可以使用this.getClass().getName()。最後,也有this.getClass().getSimpleName()this.getClass().getCanonicalName()。我一直使用前者打印可讀的類名來記錄文件等。

+1

@Martin,'format.getClass()'是使用的具體類。 –

+1

這裏您例如: 'java.text.NumberFormat中的格式= java.text.NumberFormat.getInstance();'' 的System.out.println(format.getClass());' 對不起,沒有得到格式化工作... @彼得:有新問題的一些問題。發佈太早... – Martin

+0

@馬丁,投了票。 ;) –