代码之家  ›  专栏  ›  技术社区  ›  Libert Piou Piou

Bean:访问器vs属性[已关闭]

  •  0
  • Libert Piou Piou  · 技术社区  · 11 年前

    我一直想知道豆子应该怎么做 访问其 拥有 属性 .

    它是否必须始终使用 吸气剂 设置者 this.getAttribute1() this.setAttribute1()

    还是必须直接使用 this.attribute1 当没有额外处理时?

    与JPA打交道的最佳做法是什么?

    4 回复  |  直到 11 年前
        1
  •  4
  •   nablex    11 年前

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

    总的来说,这并不重要,因为如果您更新getter,您可以更新它的本地引用,但最好的做法是直接使用getter,除非您有非常具体的理由不这样做。

        2
  •  0
  •   lxcky    11 年前

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

        3
  •  0
  •   Vinay Veluri    11 年前

    我认为访问同一类中的财产不会有太大差异。在同一类中使用定义,可以访问属性,而不考虑其范围(private、public、protected)。当继承适用时,如何访问父属性很重要?使用getter或直接使用变量

    JPA还有一个案例。

    在同一bean类中使用变量时,总是建议对变量使用getter。尤其是Hibernate-JPA组合。

    样品

    @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中,Other实例也属于同一类-我们仍然需要使用它,这已经得到了很好的解释 here .

        4
  •  0
  •   Muneeb Tariq    11 年前

    实际上,Bean是一个没有参数构造函数和getter和setter提供的属性的类 例如

    public class Bean
    {
    int x;
    
     setX(int x)
    {
    this.x=x;
    }
    
    getX()
    {
    return this.x;
    }
    

    现在,使用这个bean类,当您访问JSF或JSP属性时,它将类似于#{bean.x},这意味着它正在获取属性的值。 原因是它会自动放置get和set