繁体   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