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 代码约定:变量名以小写字母开头。)