因此,直到最近,我还是故意为自己保留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类型的属性使用
is
和has
代替get
,例如:public boolean isAwesome();
public boolean hasAwesomeStuff();