Java 使用getter或direct在其自己的类中获取私有变量,并使用name?

Java 使用getter或direct在其自己的类中获取私有变量,并使用name?,java,coding-style,Java,Coding Style,在同一个类中获取私有变量更可取的方法是什么 例如,我们有以下代码: public Class TestClass { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } 那么,在同一个类中使用名称或其getter获取私有变

在同一个类中获取私有变量更可取的方法是什么

例如,我们有以下代码:

public Class TestClass
{
    private String name;

    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }

那么,在同一个类中使用名称或其getter获取私有变量的首选方法是什么呢

更新:
getter总是只返回名称。

好吧,我认为这是一个与偏好/情况相关的问题。如果你直接调用这个字段,你会得到一个更好的时间,因为你不需要做额外的方法调用,这是非常快的,而且可能会更简洁一些。但是如果您使用getter,您可以添加另一层抽象,并在其中执行其他操作,例如返回另一个值而不是默认值,字段未设置,例如:

int getAge() {
   return (age < 18) ? 18 : age;
}
请注意,Stuff是我的类,NULL_对象字段是NULL对象模式实现,我的示例没有任何同步


话虽如此,如果情况不需要太夸张,我总是使用直接字段访问方法。

偏好取决于上下文。在上面的例子中,getter只返回变量,许多开发人员倾向于直接返回变量。但是,如果您的getter更复杂,或者认为它在将来可能会改变,那么使用getter可能是首选。这完全取决于
name
代表什么,
getName()
返回什么,以及
getInfo(…)
期望什么。

getter在任何情况下,任何时候都只返回name。什么是更好的方法?我的观点是,主观上是更好的。如果你希望你的getter在将来发生变化或者变得更复杂,那么它可能是一个更好的选择。如果你对getter所做的一切都是对字段进行复述,那么我个人会选择直接字段访问,因为它更具可读性
int getAge() {
   return (age < 18) ? 18 : age;
}
Stuff getStuff() {
    if(stuff == null) {
        return Stuff.NULL_OBJECT;
    }
}