JavaFX布尔属性命名约定

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

我知道布尔属性的常规约定是使用形容词表示属性本身,使用“is”表示getter,“set”表示setter

例如:

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);
}
上面的代码运行得非常好。但是,请注意getter
IshaAdminRight
听起来很奇怪(除非我是这里唯一一个认为它很奇怪的人)。当然,将其更改为
get
也可以工作(运行),但是
getHasAdminRight
也有点奇怪

我是否可以采用任何命名约定,
*AdminRight.*
,使其听起来正确?或者,这里的每个人都会简单地将
hasaadminright
与getter
isHasAdminRight
/
getHasAdminRight
,因为这应该是惯例?

使用
getHasSomething()
而不是
isHasSomething()


JavaFX中基于反射命名的逻辑,例如在getter名称上使用
is
get
前缀。所以你可以用这两种方法中的任何一种,它都可以很好地工作。逻辑不关心返回类型是否为布尔值,它只是首先检查
get
前缀,如果找不到前缀,则检查
is
前缀。但是,同样的逻辑不会理解
hasSomething()
是一个getter,因为它的前缀不是
get
is

嗯,我知道属性的getter和setter需要分别以get/is和set开头。但是,我更关心的是存储信息的属性是否存在的命名约定。我无法理解您所画的区别。更新了问题。我的答案仍然相同(使用
getHasSomething()
),我没有更好的建议。