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