Bean:访问者与属性

时间:2014-08-25 08:26:34

标签: java javabeans getter-setter

我一直想知道bean应该如何访问自己的属性

是否必须始终使用 getters setters ,即this.getAttribute1()this.setAttribute1()

或者在没有其他处理时是否必须直接使用this.attribute1访问它?

处理JPA时最好的做法是什么?

4 个答案:

答案 0 :(得分:4)

理论上,即使在课堂内也最好使用getter / setter。这样做的原因是你可以(最初或稍后)为它们添加功能(例如在getter中延迟加载)。

总的来说它并不重要,因为你可以更新本地对getter的引用,但是最好直接去getter,除非你有非特定的理由不这样做。

答案 1 :(得分:0)

从技术上讲,我们不需要使用bean自己的getter和setter方法来访问它的属性,因为这些属性对于对象本身是可见的,但我建议你使用你的getter和setter来练习封装。

答案 2 :(得分:0)

我认为在同一个类中访问属性没有太大区别。在同一类中定义的属性可以被访问,而不管其范围(私有,公共,受保护)。当继承适用时,重要的是如何访问父属性?使用getter /直接使用变量

JPA还有另一个案例。

总是建议在变量中使用getter,同时在同一个bean类中使用它们。特别是使用Hibernate - JPA combo。

样品

@Override
public boolean equals(Object obj) {
    ...........
    X other = (X) obj;
    if (name == null) {
        if (other.getName() != null)
            return false;
    } else if (!name.equals(other.getName()))
        return false;
    return true;
}

在equals中,其他实例也是同一个类 - 我们仍然需要使用哪个被很好地解释here

答案 3 :(得分:0)

实际上,Bean是一个没有参数化构造函数的类,并且属性由getter和setter提供 e.g

public class Bean
{
int x;

 setX(int x)
{
this.x=x;
}

getX()
{
return this.x;
}

现在使用这个bean类,当你访问属性是JSF或JSP时,它就像#{bean.x},这意味着它获取了属性的值。 原因是它会自动将get和set设置为