JavaBeans:如何拥有私有数据?

时间:2016-03-11 16:05:29

标签: java javabeans getter-setter

根据JavaBeans规范,类的所有成员变量都必须具有公共getter和setter方法。但是,某些数据在逻辑上是类的内部工作的一部分,不应该暴露给Bean的用户。拥有真正的私人数据成员的正确方法是什么?

我提出的一种方法是使用私有方法,例如getValueX(),它只返回值X.然后,您可以使用它来代替变量X的值。但这只允许检索,而不是更新。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

根据原JavaBeans Spec

  

8.5方法的设计模式

     

默认情况下,我们假设Java Bean的所有公共方法都应作为外部方法公开   组件环境,供其他组件访问或通过   脚本语言。

因此,如果你有一个只有私有访问器和mutator的字段的类,它们将被排除在内省之外(默认情况下),并且该类在技术上仍然可以表示“Java Bean”,因为它的属性与公共访问器和mutator满足JavaBeans规范。

话虽如此,我认为最好直接在您的实现中访问私有字段,而不是为它们提供私有的setter和getter。