簡體   English   中英

Java jLabel.setText()方法不使用String重載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM