在jLabel组件中,假设我有此代码,
JLabel jLabel = new JLabel();
jLabel.setText( 123 ) ;
它会产生错误。但写下这个,
jLabel.setText( 123 + "" ) ;
强制将int part作为字符串。但我不认为像这样写int是个好主意!这个方法是否有任何重载的兄弟姐妹没有抓住String?
答案 0 :(得分:2)
您在这里做的不多,setText
只接受String
参数。或者,如果您发现这更具可读性,则可以执行jLabel.setText(Integer.toString(123))
。
至于123 + ""
部分,每当你添加一些变量并且其中至少有一个是String
时,编译器会自动调用其他变量toString
并连接所有字符串。 somevar + ""
(空字符串)是一种快速调用somevar.toString()
的方式。
答案 1 :(得分:2)
编译器是正确的。您正在将数字传递给需要该字符串的方法。第二种方法工作的原因是jvm取数字和字符串,并将它们加在一起,返回一个字符串,这就是它工作的原因。你的另一个选择是做一些Integer.toString(123);