这是一个经常讨论的话题。在对象中创建公共字段的缺点是您无法控制为其设置的值。在有许多程序员使用同一代码的小组项目中,避免副作用很重要。此外,有时最好返回字段对象的副本或以某种方式对其进行转换等。您可以在测试中模拟此类方法。如果创建新类,则可能看不到所有可能的操作。这就像防御性编程-总有一天,getter和setter可能会有所帮助,并且创建/使用它们不会花费很多。因此它们有时很有用。
实际上,大多数字段都有简单的获取器和设置器。可能的解决方案如下所示:
public property String foo;
a->Foo = b->Foo;
更新:极不可能在Java 7中甚至可能永远不会添加属性支持。Groovy,Scala等其他JVM语言现在确实支持此功能。-亚历克斯·米勒



