2011-09-09 105 views
1

不超载在JLabel部件,说我有这样的代码,爪哇jLabel.setText()方法与字符串

JLabel jLabel = new JLabel(); 
jLabel.setText(123) ; 

它产生错误。但是写这个,

jLabel.setText(123 + "") ; 

强制int部分是一个字符串。但我不认为像这样写int就是一个好主意!这个方法是否有任何重载的兄弟姐妹抓不到一个字符串?

回答

2

你可以在这里做的不多,setText只需要String参数。或者,你可以做jLabel.setText(Integer.toString(123)),如果你觉得这更可读。

至于一部分,只要你添加一些变量,其中至少有一个是String,编译器会自动调用的其他toString,并串联所有的字符串。 somevar + ""(空字符串)是调用somevar.toString()的快捷方式。

2

编译器是正确的。您正在将数字传递给想要字符串的方法。第二种方法工作的原因是,jvm正在接受数字和字符串,并将它们加在一起,这会返回一个字符串,这就是它工作的原因。你的另一个选择是做一些Integer.toString(123);