了解在同一个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将始终只返回名称。
答案 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(...)
期望什么。