我对以下代码有疑问:
TextView.setText("" + ((System.currentTimeMillis() - this.startTime) / 1000));
为什么必须在 setText 方法中包含“”?
我对以下代码有疑问:
TextView.setText("" + ((System.currentTimeMillis() - this.startTime) / 1000));
为什么必须在 setText 方法中包含“”?
setText
只接受字符串,但是((System.currentTimeMillis() - this.startTime) / 1000)
是一个数字。
您总是可以使用或您拥有的任何方法手动转换它toString()
,但有时利用以下事实“更简单”:当您将内容添加到字符串时,第二项会隐式转换为字符串。
那是,
"a" + 5
将评估为
"a" + "5"
这是
"a5"
相似地,
"" + 5
"" + "5"
"5"
原因是TextView.setText(int resId)也存在。所以如果你只是调用
TextView.setText((System.currentTimeMillis() - this.startTime) / 1000);
当找不到资源时,您不会收到编译时错误,而是运行时错误。如果您希望参数被视为String
必须转换它,那么一种方法是String
通过附加到来强制创建 a ""
。