2016-05-15 38 views
2

问题:哪些方法使用JavaBeans命名传递给用户和增变器?
上面的代码是正确的答案之一:Javabean命名转移

public getNumWings() {return numberWings;} 

我查了豆definition(8.3节阐明多一点),并从我读(和知道)我想说的获取方法都有一个错误的名称,这个答案是否真的正确?如果是,是因为一个新的属性“numWings”是“创建/暴露”?

+2

这是错误的,因为名为“foo”的变量应该有一个名为“getFoo”的getter。你的写作答案是“getNumberWings”。除非我误解,否则可能是一些错误的学习材料。 – duffymo

+0

@duffymo我同意你的看法,但我想知道为什么这个选项可以接受是有原因的 –

+0

我不知道;也许我不明白命名约定和我应该的。就我个人而言,我认为这会让我认识的大部分编写Java的人感到神秘。这里是酸性测试:如果杰克逊未能使用该函数的形式序列化这个变量,那么我会说这是错误的。获得无用认证的重点不应该是像这样疏通晦涩难懂的细节;它应该教你如何编写任何人都能理解的清晰的代码。这使得这个目标更加困难。 – duffymo

回答

3

JavaBeans规范涉及到属性,而不是字段。尽管属性被同名的简单字段支持是很常见的,但并不要求这样做,并且通常会计算大量属性(特别是诸如isEmpty()之类的布尔值)。

在此示例中,getNumWings()访问器是名为numWings的属性的getter,并且没有问题。该属性由具有不同名称的字段支持的事实是一个私有实现细节,并且就bean接口而言无关紧要。