最近有一个问题询问在 Java 中将调用 getter 的结果分配给局部变量以避免多次调用同一访问器是否是一个好主意。我找不到原始帖子,但共识似乎是这通常是不必要的,因为 Hotspot 无论如何都会优化方法调用开销。
然而,对于采用这种技术来避免多次转换有何看法?目前我面临着以下选择:
if (a instanceof Foo) {
// Cast once and assign to local variable.
Foo foo = (Foo)a;
if (foo.getB() == 1 && foo.getC() == 2) {
...
}
}
OR
if (a instanceof Foo) {
// Cast twice making code compact but possibly less readable.
// Also, is there an overhead in multiple casts?
if (((Foo)a).getB() == 1 && ((Foo)a).getC() == 2) {
...
}
}
由于可读性问题,我更喜欢创建局部变量而不是总是进行强制转换。对于我(或处理相同代码的其他开发人员)来说,代码可读性是一个重要问题。
在我看来,对现阶段性能的担忧是“过早优化”模式的一个例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)