2010-11-08 64 views
0

什麼我想到的是有點像「這個」關鍵字,但在一流水平即什麼問題或好處將與「靜態這個」關鍵字相關聯?

class Example { 
    public static void main(String[] args) { 
     assert Example.class == thisclass.class 
    } 
} 

其中「thisclass」是返回當前類,就像一個關鍵字「這個」返回當前實例。

我可以看到一些有用的地方(例如,停止剪切&粘貼常見日誌成語中的錯誤),但我也可以看到一些潛在的問題(如何處理子類等)。

我認爲有很好的理由不在Java中包含這個概念,但它們是什麼?此外,使用Groovy元編程可以做這種事情嗎?

+4

停止複製和粘貼錯誤的最佳方法不是複製和粘貼。 – 2010-11-08 00:22:06

+0

同意,但有些情況下複製和粘貼是合適的。聲明一個記錄器是其中之一,但我想你可以使用log4e或類似的特定情況。 – 2010-11-08 00:37:12

回答

2

groovy正好具有您正在討論的'this'語義。在靜態上下文中,「this」是指方法所在的類。

檢出http://groovy.codehaus.org/Differences+from+Java並搜索'this keyword'。

Java並沒有效仿這一點,很明顯,可能是因爲最終它只是一小塊'groovy'味道。當然沒有任何必要。

+0

差異頁面並沒有讓它變得太明顯,但它很好理解它已經可用。我正在考慮進一步研究Groovy,因此任何知識都會有用。 – 2010-11-08 00:50:09

+0

Java並沒有「遵循」Groovy,因爲Java語言比Groovy早了**多**年。 – 2010-11-08 03:14:13

+0

@stephen,當然,但Java仍在發展中是我的觀點。 – hvgotcodes 2010-11-08 14:44:35

0

在C++中,當前類的類型爲this時曾經有過練習。我試了一下,沒有發現任何驚人的好處。