JavaBeans:如何拥有私有数据?
JavaBeans: how to have private data?
根据 JavaBeans 规范,class 的所有成员变量必须具有 public getter 和 setter 方法。然而,一些数据在逻辑上是 class 内部工作的一部分,不应该暴露给 Bean 的用户。拥有真正私有数据成员的正确方法是什么?
我想出的一种方法是使用 私有 方法,例如 getValueX(),它只是 returns 值 X。然后,您可以使用这个代替变量 X 的值。但这只允许检索,不能更新。正确的做法是什么?
根据原文JavaBeans Spec:
8.5 Design Patterns for Methods
By default, we assume that all public methods of a Java Bean should be exposed as external methods within
the component environment for access by other components or by
scripting languages.
因此,如果你有一个 class 的字段只有私有访问器和修改器,它们将被排除在自省之外(默认情况下)并且 class 在技术上仍然可以表示一个“Java Bean”,因为它的 public 访问器和修改器属性满足 JavaBeans 规范。
话虽如此,我认为最好在您的实现中直接访问私有字段,而不是为它们提供私有 setter 和 getter。
根据 JavaBeans 规范,class 的所有成员变量必须具有 public getter 和 setter 方法。然而,一些数据在逻辑上是 class 内部工作的一部分,不应该暴露给 Bean 的用户。拥有真正私有数据成员的正确方法是什么?
我想出的一种方法是使用 私有 方法,例如 getValueX(),它只是 returns 值 X。然后,您可以使用这个代替变量 X 的值。但这只允许检索,不能更新。正确的做法是什么?
根据原文JavaBeans Spec:
8.5 Design Patterns for Methods
By default, we assume that all public methods of a Java Bean should be exposed as external methods within the component environment for access by other components or by scripting languages.
因此,如果你有一个 class 的字段只有私有访问器和修改器,它们将被排除在自省之外(默认情况下)并且 class 在技术上仍然可以表示一个“Java Bean”,因为它的 public 访问器和修改器属性满足 JavaBeans 规范。
话虽如此,我认为最好在您的实现中直接访问私有字段,而不是为它们提供私有 setter 和 getter。