Java赋值语句里的空双引号""有什么作用?
""空双引号在代码中的作用解析 对应代码片段:
// Converts choices.size() to string String choiceString = "" + choices.size(); setAnser (choiceString);
功能本质
- 这里的
""是长度为0的空字符串实例,核心作用是借助Java的运算符规则,把choices.size()返回的整数转换为字符串类型。 - Java的
+运算符有两种执行逻辑:两侧都是数值类型时执行算术加法;只要任意一侧是字符串类型,就会切换为字符串拼接模式,此时另一侧的操作数会被自动转换为对应内容的字符串。
由于""本身就是字符串类型,+后面的choices.size()(返回int类型的整数)不会被纳入数值加法运算,而是会被转成和它数值对应的字符串,最终和空字符串拼接,得到纯数字组成的字符串结果。
补充说明
- 如果删掉这个空双引号,直接写
String choiceString = choices.size();会触发编译报错:int类型无法直接赋值给String类型变量,存在类型不匹配问题。 - 这种写法是Java开发中很常见的简洁式整数转字符串方案,和显式调用
String.valueOf(choices.size())得到的最终结果完全一致,只是写法更短,但代码可读性弱于显式转换的写法。 - 代码中的
setAnser为拼写错误,对应场景下的正确方法名一般为setAnswer。
内容的提问来源于stack exchange,提问作者astroworldphysics
相关产品推荐
相关产品推荐

