我应该创建一个新变量还是始终从 class 对象访问数据?

Should I create a new variable or always access the data from a class object?

让我们从一个例子开始(只是为了解释)

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()

我知道这是一个菜鸟问题,仍然很想知道。

尽管它在性能方面有所不同,但几乎可以忽略不计。所以在性能方面你不会通过重构得到太多。

由于接收后没有进行任何逻辑操作(如increasing/decreasing等),因此可以多次调用getter。毕竟,您正在获取一个变量,该变量通过该方法返回。

除非你在你的 getter 中做一些昂贵的操作,否则你的代码对我来说看起来没问题。

请注意,如果您处于多线程环境中,最好使用 getter,因为您获取的变量有可能被修改。

我们能说一种方法比另一种更好吗? 我会说使用新变量就好像你需要改变你想要访问的方法一样,例如 user.getYearOfBirth() 而不是 user.getAge(),你需要改变很多如果将其分配给变量,则代码中的部分而不是一次。

它有助于提高速度。它只需要处理一次语句而不是每次。