对于布尔型字段,getter / setter的命名约定是什么?

例如。

boolean isCurrent = false; 

你怎么称呼它的吸气和二传手?

假设你有

 boolean active; 

访问者的方法将是

 public boolean isActive(){return this.active;} public void setActive(boolean active){this.active = active;} 

也可以看看

  • Java编程/ Java Bean
  • Java编程语言的代码约定

http://geosoft.no/development/javastyle.html#Specific

  1. 前缀应该用于布尔variables和方法。

    isSet,isVisible,isFinished,isFound,isOpen

    这是Sun为Java核心软件包使用的布尔方法和variables的命名约定 使用is前缀解决了select诸如状态或标志的错误布尔名称的常见问题。 isStatus或isFlag根本不适合,程序员被迫select更有意义的名字。

布尔variables的setter方法必须具有set前缀,如下所示:

void setFound(boolean isFound); 在某些情况下,有一些替代方法可以适用于更好的前缀。 这些是有,可以和应该前缀:

boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;

对于名为isCurrent的字段,正确的getter / setter命名是setCurrent() / isCurrent() (至less这是Eclipse认为的),这是非常混乱的,可以追溯到主要问题:

你的领域不应该被称为isCurrent首先。 一个动词和动词是不适合代表一个对象的状态。 用一个形容词来代替,突然你的getter / setter名字会更有意义:

 private boolean current; public boolean isCurrent(){ return current; } public void setCurrent(final boolean current){ this.current = current; } 

我相信这将是:

 void setCurrent(boolean current) boolean isCurrent() 

也许现在是时候开始修改这个答案了? 就我个人而言,我会投票支持setActive()unsetActive() (取决于上下文,可以selectsetUnActive()notActive()disable()等),因为“setActive”意味着你一直激活它,吨。 说“setActive”,但实际上删除活动状态是一种直觉。

另一个问题是,你不能以CQRS的方式来特别的听SetActive事件,你需要听一个'setActiveEvent'并且确定在这个听者的内部是否被实际设置为活动的。 当然也可以在调用setActive()时确定要调用哪个事件,但是这违背了分离关注原则。

关于这个的一个很好的阅读是Martin Fowler的FlagArgument文章: http ://martinfowler.com/bliki/FlagArgument.html

不过,我来自PHP背景,看到这个趋势越来越被采用。 不知道这与Java的发展有多less。

 Setter: public void setCurrent(boolean val) Getter: public boolean getCurrent() 

对于布尔类,你也可以使用

 public boolean isCurrent() 

只是为了避免混淆; 我推荐使用

 // Setter method for isCurrent public void setIsCurrent(boolean isCurrent) { this.isCurrent = isCurrent; } // Getter method for isCurrent public boolean getIsCurrent() { return isCurrent; }