是一个布尔属性名称前缀“is”仍然是有效的Java Bean?
我刚刚注意到我不知道的东西.
private boolean isCertified; public boolean isCertified() { return isCertified; } public void setCertified(boolean certified) { isCertified = certified; } Intellij生成了以下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; } 所以我想知道: 有一个名为isXXX的属性和一个getter是isXXX而不是isIsXXX:它是一个有效的Java Bean定义吗? 谢谢 解决方法
AFAIK,字段的命名模式不是JavaBeans规范的一部分.
JavaBeans规范(以及其他)指定了“属性”概念. 类的属性由类的方法(以某种模式命名)标识. 这些领域是无关紧要的.事实上,甚至没有一个财产的领域. 也就是说,在属性名称后面命名字段仍然是一个很好的做法.更多的是,需要访问字段的工具(例如IDE中的重构支持)将正确处理这些字段.
不,属性的getter是XXX要求isIsXXX()(对于布尔值)或getIsXXX(). 但是又是另一回事. 如果你有一个方法: boolean isXyz() 那么你有一个可读属性xyz. 如果你有一个方法 boolean isIsXyz() 那么你有一个可读的属性isXyz. 有关更多信息,请查看Introspector类,tutorial或JavaBeans规范: http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |