0

在同一个类中获取私有变量的更优选方式是什么?

例如我们有这个代码:

public Class TestClass
{
    private String name;

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

...

    public String someMethod()
    {
        return getInfo(name);
        or
        return getInfo(getName());
    }
}

...

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

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

4

2 回答 2

1

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

int getAge() {
   return (age < 18) ? 18 : age;
}

这也将有助于在对象的情况下避免返回 null,例如:

Stuff getStuff() {
    if(stuff == null) {
        return Stuff.NULL_OBJECT;
    }
}

请注意 Stuff 是我的类,NULL_OBJECT 字段是 Null 对象模式实现,我的示例没有任何同步。

话虽如此,如果情况不需要奢侈的东西,我总是使用直接字段访问方法。

于 2013-02-15T14:46:21.513 回答
1

偏好将取决于上下文。在上述 getter 仅返回变量的情况下,许多开发人员倾向于直接返回变量。但是,如果您的 getter 更复杂或相信它将来可能会发生变化,那么可能会首选使用 getter。这一切都取决于name代表什么、getName()回报什么以及getInfo(...)期望什么。

于 2013-02-15T14:46:33.750 回答