虽然我们都明白,在一个接口而不是一个类中声明常量(出于简洁的原因)是邪恶的,因为它污染了Java 5的命名空间,你可以使用静态导入来减少冗长(Effective Java Item 17)。但是,我的一位同事指出,在类中定义变量时,开发人员可能会错过将变量声明为final(public和static可以打折,因为缺少它可能是编译错误),而它们隐含于接口。任何反对它的论据?我想这可能之前已经详细讨论过,因为它看起来很简陋,但我的google-fu今天没有帮助我:)。如果有人可以在这里提出意见或指向我可能已经讨论过的地方,我将不胜感激。
提前致谢!
编辑: 这样定义的接口文件不会在其客户端的类层次结构中使用,但仅用于容纳常量。
答案 0 :(得分:0)
我不认为在界面中定义常量是邪恶的。如果有的话,在公共类中实现constants-interface是邪恶的。 然而,这给我们留下了许多其他好的选择
myXmlProcessor.setProperty(XMLOptions.VALIDATING, true)
myXmlProcessor.setProperty(MyXMLProcessor.VALIDATING, true)
:在这里知道是对的。答案 1 :(得分:0)
如果使用后Java 5 SDK,那么为什么不评估枚举而不是使用接口来定义公共静态常量。尽管如此,这种方法并没有错。