加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

是一个布尔属性名称前缀“is”仍然是有效的Java Bean?

发布时间:2020-12-14 05:22:38 所属栏目:Java 来源:网络整理
导读:我刚刚注意到我不知道的东西. private boolean isCertified; public boolean isCertified() { return isCertified; } public void setCertified(boolean certified) { isCertified = certified; } Intellij生成了以下getter和setter.顺便说一句,龙目岛生产同
我刚刚注意到我不知道的东西.
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定义吗?
>有没有任何其他隐藏的Java Bean角色的情况,我可能想知道提高代码的可读性?

谢谢

解决方法

AFAIK,字段的命名模式不是JavaBeans规范的一部分.

JavaBeans规范(以及其他)指定了“属性”概念.

类的属性由类的方法(以某种模式命名)标识.

这些领域是无关紧要的.事实上,甚至没有一个财产的领域.

也就是说,在属性名称后面命名字段仍然是一个很好的做法.更多的是,需要访问字段的工具(例如IDE中的重构支持)将正确处理这些字段.

Having a property named isXXX and a getter being isXXX instead of isIsXXX: is it a valid Java Bean definition?

不,属性的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读