POJO类中"is"变量getter/setter的正确语法是什么?

Nik*_*man 15 java pojo

如果一个类包含一个名为"blah"的变量,那么标准的getter/setter语法显然是getBlah()和setBlah().但是如果我有一个名为isBlah的变量的POJO类,我会使用:

public type getIsBlah() {
  return isBlah;
}

public setIsBlah(type isBlah) {
  this.isBlah = isBlah;
}
Run Code Online (Sandbox Code Playgroud)

或者是这样吗?

public type isBlah() {
  return isBlah;
}

public setBlah(type blah) {
  this.isBlah = blah;
}
Run Code Online (Sandbox Code Playgroud)

第一种似乎更符合POJO惯例,但第二种类型是IntelliJ生成的,如果我要求它创建一个类'getter/setters(嘿,IntelliJ从来没有让我失望:).那么首选语法是什么?

Jon*_*eet 20

使用属性的一个原因是将API与实现分离.换句话说,您不应该受到调用私有变量的束缚.除了试图保持代码维护者可读之外,这不应该告知命名.

我想说如果boolean在这种情况下"类型" ,那么第二种形式是正确的.如果不是 boolean,你应该使用getXXX- 但我可能不会使用getIsXXX.对我来说,"is"与布尔属性有很强的对应关系,在其他环境中使用它不仅会破坏JavaBeans约定(这可能影响其他工具),而且会误导IMO.

  • @Vincent:我认为你的意思是"+1提及它会打破JavaBeans惯例" - 而不是"+1 - 成为常规破坏者!" :) (5认同)