我的编码如下,
for(int i=0 ; i<n; i++){
String a = someObject.getFirstName(); //may not come same value..
doManipulationon(a);
}
在代码审查期间,人们要求我删除字符串文字 a
并直接使用 someObject.getFirstName()
进行操作。他们担心每次迭代都会在堆中创建字符串对象。
这是正确的方法吗?
我认为将 getter 分配给字符串变量可以使代码更具可读性。
最佳答案
首先这里没有字符串文字。
字符串文字是用双引号括起来的字符串表达式,例如“dog”。
您的审阅者表示他们不喜欢临时变量 a
用于保存您在下一行中操作的表达式。
显然他们想让你说
doManipulationon(someObject.getFirstName());
删除临时变量会导致更紧凑的代码。这通常是个好主意,但并非总是如此。当您的“中间表达式”具有有趣的含义时,您可以使用临时变量,但在您的情况下,使用名称 a
没有帮助。你可以说
String firstname = someObejct.getFirstName();
尤其是在长表达式中,将部分结果分配给具有有意义名称的变量确实增加了可读性。
哦,关于他们关于在您的示例中将新字符串对象添加到堆中的评论——不,没有人会。
关于java - 我可以在 for 循环中使用字符串文字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10425575/