2010-11-08 38 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时曾经有过练习。我试了一下,没有发现任何惊人的好处。