因此,直到最近,我还是故意为自己保留Java n00b,而我的第一次实际接触却引起了轻微的震惊:Java没有C#样式属性!

好吧,我可以接受。但是,我也可以保证已经在一个代码库中看到了Java中的属性 getter / setter 代码,但我不记得在哪里。那是如何实现的?为此有语言扩展吗?它与NetBeans有关吗?

最佳答案

Java中有一种用于getter和setter的“标准”模式,称为Bean properties。基本上,任何以get开头,不带任何参数并返回值的方法,都是该方法名称的其余部分(带有小写的起始字母)的属性 getter 。同样,set使用单个参数创建一个void方法的setter。

例如:

// Getter for "awesomeString"
public String getAwesomeString() {
  return awesomeString;
}

// Setter for "awesomeString"
public void setAwesomeString( String awesomeString ) {
  this.awesomeString = awesomeString;
}

如果您要求它们,大多数Java IDE都会为您生成这些方法(在Eclipse中,这就像将光标移至某个字段并按ctrl-1,然后从列表中选择选项一样简单)。

出于值(value)的考虑,出于可读性考虑,您实际上也可以将boolean类型的属性使用ishas代替get,例如:
public boolean isAwesome();

public boolean hasAwesomeStuff();

08-18 12:19