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

前端之家收集整理的这篇文章主要介绍了是一个布尔属性名称前缀“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定义吗?
>有没有任何其他隐藏的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

猜你在找的Java相关文章