gpt4 book ai didi

java - Java 中的过早优化 : when to use "x = foo.getX()" vs simply "foo.getX()"

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:16 27 4
gpt4 key购买 nike

当我发现自己多次调用同一个 getter 方法时,这应该被认为是一个问题吗? [总是] 分配给局部变量并只调用一次是否更好?

我确定答案当然是“视情况而定”。

我更关心更简单的情况,其中 getter 只是一种“传递私有(private)变量的值”类型的方法。即不涉及昂贵的计算,不消耗数据库连接等。

我的“是否更好”的问题与代码可读性(风格)和性能有关。也就是说,是否有那么大的性能损失:

SomeMethod1(a, b, foo.getX(), c);
SomeMethod2(b, foo.getX(), c);
SomeMethod3(foo.getX());

对比:

X x = foo.getX();
SomeMethod1(a, b, x, c);
SomeMethod2(b, x, c);
SomeMethod3(x);

我意识到这个问题有点挑剔和灰色。但我刚刚意识到,我根本没有评估这些权衡的一致方法。我正在寻找一些不仅仅是完全异想天开的标准。

谢谢。

最佳答案

选择不应该真正与性能有关,而应该与代码可读性有关。

当您创建一个变量时,您可以为其指定在当前上下文中应有的名称。当您多次使用同一个值时,它肯定具有真正的意义,而不仅仅是一个方法名称(或者更糟的是一系列方法)。
阅读起来真的更好:

String username = user.getName();
SomeMethod1(a, b, username, c);
SomeMethod2(b, username, c);
SomeMethod3(username);

SomeMethod1(a, b, user.getName(), c);
SomeMethod2(b, user.getName(), c);
SomeMethod3(user.getName());

关于java - Java 中的过早优化 : when to use "x = foo.getX()" vs simply "foo.getX()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612508/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com