java - 我可以在 for 循环中使用字符串文字吗?

标签 java string

我的编码如下,

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/

相关文章:

java - 如何使用 Java 中的 GSON API 自定义 JSON 中的特定日期字段?

java - 在 Android 中使用定时器进行短信调度

java - MessageGroupStoreReaper 失败并显示 "was expecting a single payload"IllegalStateException

ruby - 使用ARGV创建目录( ruby )

java - ArrayList 字符串比较

基于 Java 的回归测试

javascript - Jquery Ajax 调用 java rest api 成功函数未触发

Java GUI 按钮不会将字符串打印到界面

java - Android:IF 语句在通过首选项设置时不起作用

python - 如何将字节插入 Python 字符串