【问题标题】:What is the ("") for in something like a assignment statement?赋值语句之类的 ("") 是什么?
【发布时间】:2021-06-10 23:42:28
【问题描述】:

这适用于我的 Java 1 类。我正在阅读关于继承和接口的章节。这是“实现子类”部分。并且有一段代码具有我不理解的功能。基本上我正在阅读的部分是描述如何实现方法。老实说,我什至不知道该怎么说,但是有人可以解释一下第二行的空双引号吗?

// Converts choices.size() to string
String choiceString = "" + choices.size();
setAnser (choiceString);

【问题讨论】:

  • 这是我们用来调用字符串转换的技巧。整数不会自动转换为字符串,但java知道如何构建字符串。
  • 添加到其他答案,如果您想知道是否有另一种方法而不使用稍微可疑的技巧,有。你也可以使用String choiceString = String.valueOf(choices.size());
  • 将任何类型更改为字符串是一种肮脏的方式。

标签: java inheritance subclass


【解决方案1】:

使用字符串连接运算符+choices.size()(一个int)转换为字符串是一个技巧。引用spec on the String concatenation operator, +

如果只有一个操作数表达式是字符串类型,那么字符串 对另一个操作数执行转换(§5.1.11)以产生一个 运行时的字符串。

因此,在您的示例中,这是强制将 choices.size() 返回的整数转换为字符串的技巧。然后在前面加上一个空字符串,并带有一个字符串的最终结果。

另一种更易读的方法是String.valueOf(choices.size())

【讨论】:

  • 好吧,所以基本上引号有点像演员分配,比如当你想将类型 double 转换为类型 int 时,或者类似的东西?
  • 是,但不是引号,+ 运算符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 2014-10-22
  • 1970-01-01
  • 2017-07-03
  • 2018-12-06
相关资源
最近更新 更多