【发布时间】:2020-05-15 18:38:41
【问题描述】:
Java 14 引入了records 功能。 Record 会创建与字段同名的 getter,例如,可以写成 print(person.name())。但是旧的 Java bean 约定规定应该将此方法命名为 getName()。
在同一个代码库中使用这两种样式看起来不太好。将所有内容迁移到记录是不可能的,因为它们太有限而无法替换所有用例。
是否有任何官方或半官方指南如何在新代码中以 Java 14 命名 getter 和 setter?
【问题讨论】:
-
我怀疑记录是一种不同于标准 javabean 的组件,也许它们遵循不同的约定是正确的。它们有不同的约束,所以它们自然不适合我们发现 javabean 的许多地方。
-
我认为答案是否定的。还没有。风格指南/惯例倾向于跟踪添加新的语言特性,因为达成共识需要时间。
-
此外...记录将只是 Java 14 中的“预览”功能。它们不一定会成为永久语言功能。
-
就像一个数据点:Google 的 Java 目前广泛使用AutoValue,这是当前语言中的一种记录。从 getter 中省略“get”是一个相当普遍的约定;但有些人热切地推后(实际上,there's a specific point in the FAQ,说“做任何一个,只要保持一致”)。 YMMV; Google 风格只是众多选择之一。
-
@AndyTurner 对于我需要编写的 Groovy/Kotlin/EL 代码,我非常兴奋
obj.foo().bar.baz().quux!
标签: java naming-conventions getter java-14 java-record