有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javabean:访问器与属性

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

它是否必须始终使用其gettersetterthis.getAttribute1()this.setAttribute1()

或者在没有额外处理的情况下,它必须直接使用this.attribute1访问它吗

处理JPA的最佳实践是什么


共 (4) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    从理论上讲,即使在课堂上也最好使用getter/setter。这是因为您可以(最初或以后)向它们添加功能(例如,在getter中延迟加载)

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

  3. # 3 楼答案

    实际上,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

  4. # 4 楼答案

    我认为在访问同一类中的属性时不会有太大差异。在同一类中使用定义,可以访问属性,而不考虑其范围(私有、公共、受保护)。如果继承适用,那么如何访问父属性就很重要了?要么使用getter,要么直接使用variable

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