JAVA:不兼容的类型:int无法转换为java.lang.String

时间:2015-11-28 13:20:35

标签: java types concat

我写过以下作品,打印时间格式为hh:ss:mm。 尝试连接int时出现以下错误,但仅针对最后一个语句,这很奇怪。 (_hour& _minute& _second方法返回一个int)

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;
}

我得到&#34;不兼容的类型:int无法转换为java.lang.String&#34;只是(!)为最后一个statemenet:&#34; TimeString.concat(this._second)&#34;。 为什么会这样?为什么这种情况只发生在所有其他通过的最后一个声明上?

由于

2 个答案:

答案 0 :(得分:1)

如果您正在构建这样的字符串,请使用StringBuilder而不是连接;它的效率更高,更清晰一些。特别是,它的append方法是为任何类型定义的,而不仅仅是其他字符串。

(并使用Java代码约定:变量名以小写字母开头。)

答案 1 :(得分:0)

与其他地方一样,您首先将输入转换为字符串,即

  TimeString.concat("0" + this._second);

但是在TimeString.concat(this._second);这个._second默认情况下不是字符串。您需要先将其转换为字符串。一种方法是

 "" + this._second