使用getter或direct名称在自己的类中获取私有变量?

时间:2013-02-15 14:39:30

标签: java coding-style

了解在同一个Class中获取私有变量的更优选方法。

例如我们有这段代码:

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将始终只返回名称。

2 个答案:

答案 0 :(得分:1)

嗯,我认为这是偏好/情况相关的问题。如果你直接打电话给你,你会得到一个更好的时间,因为你不进行额外的方法调用,无论如何都要快,也许更简洁。但是如果你使用getter你可以添加另一层抽象,并在那里做一些其他的东西,比如返回另一个值而不是默认值是没有设置字段,如:

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

这也有助于避免返回null的对象,例如:

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

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

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

答案 1 :(得分:1)

偏好取决于具体情况。在上面的例子中,getter只返回变量,许多开发人员倾向于直接返回变量。但是,如果你的getter更复杂或者相信它将来会发生变化,那么可能更喜欢使用getter。这完全取决于name代表什么,getName()返回什么以及getInfo(...)期望什么。

相关问题