Java布尔变量命名规范:writerEnabled与writerIsEnabled

17

以下哪个声明符合Java的命名约定?

private boolean writerIsEnabled;
// with methods like
public boolean getWriterIsEnabled() 
public void setWriterIsEnabled()

private boolean writerEnabled;
// with methods like
public boolean getWriterEnabled() 
public void setWriterEnabled()

我个人认为"writerIsEnabled"这个变量名更易读,特别是当你在if语句中使用它时 -

if(writerIsEnabled)
 {
    //...
 } 

1
可能是Valid java bean names for booleans的重复问题。 - Andreas Dolk
5
个人而言,我会选择使用 [is]WriterEnabled。这意味着我会将变量命名为 writerEnabled,getter 命名为 isWriterEnabled,setter 命名为 setWriterEnabled。不过,这更多是出于代码自动完成的考虑,而非惯例。 - MadProgrammer
4个回答

33

据我所知,情况是这样的:

private boolean writerEnabled;
// with methods like
public boolean isWriterEnabled();
public void setWriterEnabled(boolean enabled);

当类型为booleanBoolean时,不同之处在于Getter以is开头而不是get

个人更喜欢使用isWriterEnabled的方式。例如,像JSF这样的技术在访问属性时尊重这个规范。EL表达式使用isget来确认。


5
如果这是在一个写入器类中,你可能想从变量中删除写入器。在我的字段名称中,我通常不会使用“Is”,但在方法中会使用。像这样:
private boolean writerEnabled;

public boolean isWriterEnabled();
public void setWriterEnabled(boolean enabled);

尽管这是我个人的命名约定,但你应该与任何其他与你一起工作的人交流,了解他们可能会使用什么。

3
private boolean writerEnabled;
public boolean isWriterEnabled() 
public void setWriterEnabled()

2

对于getter和setter方法,我相信惯例是 public boolean isWriterEnabled()public boolean isReaderEnabled()。 至于变量,应该是 private boolean writerEnabled


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接