当前位置:  开发笔记 > 编程语言 > 正文

为什么添加长变量会导致连接?

如何解决《为什么添加长变量会导致连接?》经验,为你挑选了1个好方法。

Java在执行添加时对长变量做了什么?

错误的版本1:

Vector speeds = ... //whatever, speeds.size() returns 2
long estimated = 1l;
long time = speeds.size() + estimated; // time = 21; string concatenation??

错误的版本2:

Vector speeds = ... //whatever, speeds.size() returns 2
long estimated = 1l;
long time = estimated + speeds.size(); // time = 12; string concatenation??

正确版本:

Vector speeds = ... //whatever, speeds.size() returns 2
long estimated = 1l;
long size = speeds.size();
long time = size + estimated; // time = 3; correct

我不明白,为什么Java连接它们.

任何人都可以帮助我,为什么两个原始变量连接起来?

问候,guerda



1> toolkit..:

我的猜测是你实际上在做类似的事情:

System.out.println("" + size + estimated); 

此表达式从左到右进行评估:

"" + size        <--- string concatenation, so if size is 3, will produce "3"
"3" + estimated  <--- string concatenation, so if estimated is 2, will produce "32"

要实现这一点,您应该:

System.out.println("" + (size + estimated));

再次从左到右评估:

"" + (expression) <-- string concatenation - need to evaluate expression first
(3 + 2)           <-- 5
Hence:
"" + 5            <-- string concatenation - will produce "5"

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有