2
问题:哪些方法使用JavaBeans命名传递给用户和增变器?
上面的代码是正确的答案之一:Javabean命名转移
public getNumWings() {return numberWings;}
我查了豆definition(8.3节阐明多一点),并从我读(和知道)我想说的获取方法都有一个错误的名称,这个答案是否真的正确?如果是,是因为一个新的属性“numWings”是“创建/暴露”?
问题:哪些方法使用JavaBeans命名传递给用户和增变器?
上面的代码是正确的答案之一:Javabean命名转移
public getNumWings() {return numberWings;}
我查了豆definition(8.3节阐明多一点),并从我读(和知道)我想说的获取方法都有一个错误的名称,这个答案是否真的正确?如果是,是因为一个新的属性“numWings”是“创建/暴露”?
JavaBeans规范涉及到属性,而不是字段。尽管属性被同名的简单字段支持是很常见的,但并不要求这样做,并且通常会计算大量属性(特别是诸如isEmpty()
之类的布尔值)。
在此示例中,getNumWings()
访问器是名为numWings
的属性的getter,并且没有问题。该属性由具有不同名称的字段支持的事实是一个私有实现细节,并且就bean接口而言无关紧要。
这是错误的,因为名为“foo”的变量应该有一个名为“getFoo”的getter。你的写作答案是“getNumberWings”。除非我误解,否则可能是一些错误的学习材料。 – duffymo
@duffymo我同意你的看法,但我想知道为什么这个选项可以接受是有原因的 –
我不知道;也许我不明白命名约定和我应该的。就我个人而言,我认为这会让我认识的大部分编写Java的人感到神秘。这里是酸性测试:如果杰克逊未能使用该函数的形式序列化这个变量,那么我会说这是错误的。获得无用认证的重点不应该是像这样疏通晦涩难懂的细节;它应该教你如何编写任何人都能理解的清晰的代码。这使得这个目标更加困难。 – duffymo