netbeans根据命名约定返回布尔类的getter的Java名称
我注意到对于返回Boolean
(而不是boolean
)的getternetbeans生成带有“get”前缀的getter。例如:
private Boolean main;
public Boolean getMain(){
return this.main;
}
这是错误的(根据命名约定)?或者“是”前缀仅用于基本类型
你可以在下面搜索框中键入要查询的问题!
我注意到对于返回Boolean
(而不是boolean
)的getternetbeans生成带有“get”前缀的getter。例如:
private Boolean main;
public Boolean getMain(){
return this.main;
}
这是错误的(根据命名约定)?或者“是”前缀仅用于基本类型
# 1 楼答案
根据OCP Oracle认证专业Java SE 8程序员II学习指南:
以下哪项可以正确地包含在JavaBean中
第一行是正确的,因为它为布尔变量定义了正确的getter。 第二个示例也是正确的,因为boolean可以使用is或get第三行是 不正确,因为布尔包装应该以get开头,因为它是一个对象强>
# 2 楼答案
这取决于是否将包含该方法的类视为JavaBean
如果您希望它是一个JavaBean,那么Marko Topolnik's answer是准确的
否则就没有对错。是否使用
get
或is
(或其他)取决于合同和方法的目的。Eran的第一个评论是:你问约定是什么,我会说约定是将方法命名为描述性的,语义上尽可能准确
要详细说明是还是获取:
如果该方法旨在作为capital-B
Boolean
属性的通用访问器,使其接受值null
,则使用get
更有意义如果该方法旨在给出一个其他内部(如本例中的
private
)非空标志的状态,我认为is
将是一个合适的前缀。(尽管我可能会使用boolean
作为返回值,除非有一个常见的用例,例如isMain().hashCode()
或类似的东西。)# 3 楼答案
Netbeans在这里没有错-对于
Boolean
对象属性get
是正确的。首先,属性值可以是null
,在这种情况下is
没有意义javabeans spec允许
is
类型boolean
作为特例,没有提到Boolean
。假设此特殊情况扩展到Boolean
对象是无效的# 4 楼答案
这是正确的。Boolean是原始数据类型Boolean的包装类。所以布尔值将返回object。同样的
get
也用于对象,就像原始数据类型一样# 5 楼答案
这里引用了实际的JavaBeans specification document:
请注意,这适用于
boolean
而不是Boolean
值。还请注意is
是get
的允许的替代,而get
总是合适的# 6 楼答案
在
Boolean
对象上,可以应用许多方法:toString
,equals
,valueOf
你的问题没有完整的答案,这取决于用法和调用方法的人。有必要:
但是如果您的逻辑不能确保
main
可以有null
值,那么get
是一个很好的前缀