2011-09-09 107 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);