我刚刚注意到一些我不知道的事情。
private boolean isCertified;
public boolean isCertified() {
return isCertified;
}
public void setCertified(boolean certified) {
isCertified = certified;
}
以下 getter 和 setter 是由 Intellij 生成的。顺便说一句,Lombok 生成相同类型的 getter 和 setter。
我本来期望的是这样的:
private boolean isCertified;
public boolean isIsCertified() {
return isCertified;
}
public void setIsCertified(boolean certified) {
isCertified = certified;
}
这就是为什么我通常不为布尔属性添加前缀ìs
,尽管我认为属性名称变得更具可读性。
我通常会写这样的内容:
private boolean certified;
public boolean isCertified() {
return certified;
}
public void setCertified(boolean certified) {
certified = certified;
}
所以我想知道:
Thanks
AFAIK,字段的命名模式不是 JavaBeans 规范的一部分。
JavaBeans 规范指定了(除其他外)“属性”概念。
类的属性由类的方法(以某种模式命名)来标识。
这些字段是无关紧要的。事实上,甚至不需要有一个属性字段。
也就是说,以属性名称命名字段仍然是一个好习惯。需要访问这些字段的工具(例如 IDE 中的重构支持)正确处理这些字段的可能性更大。
具有名为 isXXX 的属性和 isXXX 而不是 isIsXXX 的 getter:它是有效的 Java Bean 定义吗?
不,属性的 getterisXXX
需要isIsXXX()
(对于布尔值)或getIsXXX()
.
但情况又反过来了。
如果你有方法:
boolean isXyz()
那么你就有了一个可读的属性xyz
.
如果你有方法
boolean isIsXyz()
那么你就有了一个可读的属性isXyz
.
欲了解更多信息,请查看内省者 http://docs.oracle.com/javase/7/docs/api/java/beans/Introspector.html类,该tutorial http://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html或 JavaBeans 规范:
http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)