我一直在使用Java或一段时间的注释作为最终用户,但最近我决定考虑创建我自己的注释类型,并且我发现用@interface定义Java注释的语法很奇怪。我的问题是为什么Java使用@interface来定义注释,而不是像他们对枚举所做的那样引入新的关键字?我缺少@interface语法的优点吗?为什么@interface用于定义注释?
我很想了解注释设计者所经历的设计考虑因素,我相信他们一定是玩弄了引入新关键字来定义注释的想法。
@interface有太多的限制,例如你不能使用扩展,有一些特定的类型在定义注释成员(如Date)时不能使用。我发现对@interface的限制可能不明显,对我来说就像是一种黑客攻击。
能否请您阐述一下你的意思@是不是关键字,编译器将它以特殊的方式,同时规范说,你可以用类似“@接口”与@接口之间的空隙给我定义注释类型感觉就像一个关键字看到我更新的问题,即“为什么不”是不是唯一的应答, – ams
@ams我的道歉,我查了Java的语法,这确实让我已经完全修订我的回答关键字。 – EJP