[英]Java jLabel.setText() method overloading not with String
在jLabel組件中,假設我有這個代碼,
JLabel jLabel = new JLabel();
jLabel.setText( 123 ) ;
它會產生錯誤。 但寫這個,
jLabel.setText( 123 + "" ) ;
強制將int部分轉換為字符串。 但我不認為像這樣寫int是個好主意! 這個方法是否有任何重載的兄弟姐妹不是一個字符串?
你在這里做的不多, setText
只接受一個String
參數。 或者,您可以執行jLabel.setText(Integer.toString(123))
,如果您發現它更具可讀性。
至於123 + ""
部分,每當你添加一些變量並且其中至少有一個是String
,編譯器會自動調用其他變量上的toString
並連接所有字符串。 somevar + ""
(空字符串)是一種調用somevar.toString()
的快捷方式。
編譯器是正確的。 您正在將數字傳遞給需要該字符串的方法。 第二種方法工作的原因是jvm取數字和字符串,並將它們加在一起,返回一個字符串,這就是它工作的原因。 你的另一個選擇是做一些Integer.toString(123);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.