让我们从一个例子开始(只是为了解释)
public void mySecretOperation() {
User user = new User();
if (user.getAge() > 2 && user.getAge() < 5) {
//TODO : do something...
}
if (user.getAge() > 12 && user.getAge() < 15) {
//TODO : do something...
}
if (user.getAge() > 31 && user.getAge() < 55) {
//TODO : do something...
}
if (user.getAge() > 78 && user.getAge() < 89) {
//TODO : do something...
}
}
另一种选择是 int age = user.getAge();
然后到处使用 age
而不是 user.getAge()
。
所以,性能方面(或者让我们考虑空间复杂度)会在那里 有什么区别吗?
我们能说一种方法优于另一种方法吗?
我知道这是一个菜鸟问题,仍然很想知道。
最佳答案
尽管它在性能方面有所不同,但几乎可以忽略不计。因此,在性能方面,您不会通过重构获得太多 yield 。
由于您在接收后没有进行任何逻辑操作(如增加/减少等),因此可以多次调用 getter。毕竟,您正在获取一个通过该方法返回的变量。
除非你在你的 getter 中做一些昂贵的操作,否则你的代码对我来说看起来没问题。
请注意,如果您在多线程环境中,最好使用 getter,因为您获取的变量有可能被修改。
关于java - 我应该创建一个新变量还是始终访问类对象中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722920/