SwingJavaJLabel。setText()方法重载时不使用字符串
在jLabel组件中,假设我有这些代码
JLabel jLabel = new JLabel();
jLabel.setText( 123 ) ;
它会产生错误。但是写这个,
jLabel.setText( 123 + "" ) ;
强制int部分成为字符串。但我不认为这样写int是个好主意!此方法是否有重载的同级项而不是字符串
你可以在下面搜索框中键入要查询的问题!
在jLabel组件中,假设我有这些代码
JLabel jLabel = new JLabel();
jLabel.setText( 123 ) ;
它会产生错误。但是写这个,
jLabel.setText( 123 + "" ) ;
强制int部分成为字符串。但我不认为这样写int是个好主意!此方法是否有重载的同级项而不是字符串
# 1 楼答案
编译器是正确的。您正在将一个数字传递给需要该字符串的方法。第二种方法工作的原因是jvm将数字和字符串相加,返回一个字符串,这就是它工作的原因。你的另一个选择是做一些整数。toString(123)
# 2 楼答案
在这里你做不了什么,
setText
只接受一个String
参数。或者,如果你觉得这更具可读性,你可以做jLabel.setText(Integer.toString(123))
至于
123 + ""
部分,每当您添加一些变量,并且其中至少有一个是String
,编译器将自动调用其他变量的toString
,并将所有字符串连接起来somevar + ""
(空字符串)是调用somevar.toString()
的一种快速方法