`name()`与`getName()`命名约定?

Ali*_*iba 8 java oop naming-conventions

我看到一些项目(例如jsoup)正在使用这个新的getter/setter命名约定:

String name()
void   name(String value)
Run Code Online (Sandbox Code Playgroud)

而不是旧的getter/setter对流:

String getName()
void   setName(String value)
Run Code Online (Sandbox Code Playgroud)

每个命名约定的积极和消极方面是什么?何时以及为什么你认为一个人应该优先于另一个?

Viv*_*ath 9

第一个示例不符合JavaBeans规范 [警告PDF].有一些像Spring这样的框架,它假设了这种命名约定,特别是当你在EL中做某些事情时${object.name},会被转换为object.getName().如果您不遵循命名约定(尽管有办法解决它),这将失败.

在没有讨论何时/何时使用getter/setter的讨论中,一般来说最好坚持使用命名约定,因为这样的意外更少,特别是当你与第三方库或期望事物的框架集成时按惯例命名.


kos*_*osa 3

除了可读性和 API 风格之外什么都没有。

有些 API 接受这种风格,有些则不接受,Spring injectionsJSF无法识别这种语法(它们明确要求对属性进行 get/set 操作)。