JavaFX布尔属性命名约定
我知道布尔属性的常规约定是使用形容词表示属性本身,使用“is”表示getter,“set”表示setter 例如:JavaFX布尔属性命名约定,java,javafx,properties,naming-conventions,Java,Javafx,Properties,Naming Conventions,我知道布尔属性的常规约定是使用形容词表示属性本身,使用“is”表示getter,“set”表示setter 例如: private final BooleanProperty edible; private final BooleanProperty edibleProperty() { return this.edible; } private final boolean isEdible() { return this.edibleProperty().get(); } pr
private final BooleanProperty edible;
private final BooleanProperty edibleProperty()
{
return this.edible;
}
private final boolean isEdible()
{
return this.edibleProperty().get();
}
private final void setEdible(final boolean value)
{
this.edibleProperty().set(value);
}
现在我有了一个属性,它是关于某个东西是否存在的。我自然而然想到的名字是“hasSomething”。然而,getter“isHasSomething”是没有意义的。在这种情况下,如何正确命名我的财产
编辑
为了更清楚,我将举一个例子:
private final BooleanProperty hasAdminRight;
private final BooleanProperty hasAdminRightProperty()
{
return this.hasAdminRight;
}
private final boolean isHasAdminRight()
{
return this.hasAdminRightProperty().get();
}
private final void setHasAdminRight(final boolean value)
{
this.hasAdminRightProperty().set(value);
}
上面的代码运行得非常好。但是,请注意getterIshaAdminRight
听起来很奇怪(除非我是这里唯一一个认为它很奇怪的人)。当然,将其更改为get
也可以工作(运行),但是getHasAdminRight
也有点奇怪
我是否可以采用任何命名约定,*AdminRight.*
,使其听起来正确?或者,这里的每个人都会简单地将hasaadminright
与getterisHasAdminRight
/getHasAdminRight
,因为这应该是惯例?使用getHasSomething()
而不是isHasSomething()
JavaFX中基于反射命名的逻辑,例如在getter名称上使用
is
或get
前缀。所以你可以用这两种方法中的任何一种,它都可以很好地工作。逻辑不关心返回类型是否为布尔值,它只是首先检查get
前缀,如果找不到前缀,则检查is
前缀。但是,同样的逻辑不会理解hasSomething()
是一个getter,因为它的前缀不是get
或is
嗯,我知道属性的getter和setter需要分别以get/is和set开头。但是,我更关心的是存储信息的属性是否存在的命名约定。我无法理解您所画的区别。更新了问题。我的答案仍然相同(使用getHasSomething()
),我没有更好的建议。