JAVA:不兼容的类型:int 无法转换为 java.lang.String
JAVA: Incompatible types: int cannot be converted to java.lang.String
我已经写了下面的文章,应该以 hh:ss:mm 的格式打印时间。
尝试连接 int 时出现以下错误,但仅针对最后一条语句,这很奇怪。 (_hour & _minute & _second 方法 return 一个整数)
public String toString()
{
String TimeString = null;
if(this._hour < 10){
TimeString = "0" + this._hour + ":";
}
else{
TimeString = this._hour + ":";
}
if(this._minute < 10){
TimeString.concat("0" + this._minute + ":");
}
else{
TimeString.concat(this._minute + ":");
}
if(this._second < 10){
TimeString.concat("0" + this._second);
}
else{
TimeString.concat(this._second);
}
return TimeString;
}
我得到 "incompatible types: int cannot be converted to java.lang.String" 只是(!)最后一个声明:"TimeString.concat(this._second)"。
为什么会这样?为什么只有最后一条语句发生这种情况,而其他所有语句都通过 ok?
谢谢
与其他地方一样,您首先将输入转换为字符串,即
TimeString.concat("0" + this._second);
但在 TimeString.concat(this._second);
默认情况下 this._second 不是字符串。您需要先将其转换为 string 。一种方法是
"" + this._second
如果您要构建这样的字符串,请使用 StringBuilder
而不是连接;它更有效率,更清楚发生了什么。特别是,它的 append
方法是为任何类型定义的,而不仅仅是其他字符串。
(并使用 Java 代码约定:变量名以小写字母开头。)
我已经写了下面的文章,应该以 hh:ss:mm 的格式打印时间。 尝试连接 int 时出现以下错误,但仅针对最后一条语句,这很奇怪。 (_hour & _minute & _second 方法 return 一个整数)
public String toString()
{
String TimeString = null;
if(this._hour < 10){
TimeString = "0" + this._hour + ":";
}
else{
TimeString = this._hour + ":";
}
if(this._minute < 10){
TimeString.concat("0" + this._minute + ":");
}
else{
TimeString.concat(this._minute + ":");
}
if(this._second < 10){
TimeString.concat("0" + this._second);
}
else{
TimeString.concat(this._second);
}
return TimeString;
}
我得到 "incompatible types: int cannot be converted to java.lang.String" 只是(!)最后一个声明:"TimeString.concat(this._second)"。 为什么会这样?为什么只有最后一条语句发生这种情况,而其他所有语句都通过 ok?
谢谢
与其他地方一样,您首先将输入转换为字符串,即
TimeString.concat("0" + this._second);
但在 TimeString.concat(this._second);
默认情况下 this._second 不是字符串。您需要先将其转换为 string 。一种方法是
"" + this._second
如果您要构建这样的字符串,请使用 StringBuilder
而不是连接;它更有效率,更清楚发生了什么。特别是,它的 append
方法是为任何类型定义的,而不仅仅是其他字符串。
(并使用 Java 代码约定:变量名以小写字母开头。)