将对象显示为字符串时出现以下问题:

class Gast{

    String voorNaam, achterNaam;
    datum geboorteDatum;

    Gast(String vNaam, String aNaam, datum input){

        voorNaam = vNaam;
        achterNaam = aNaam;
        geboorteDatum = input;
    }

    public String toString(){

        return("Naam: " + voorNaam + " " + achterNaam + " " + geboorteDatum);
    }
}

在这里,我实现了一种以字符串形式表示此对象的方法,但是当我尝试在此类中使用它时:
class Kamer{

    boolean vrij;
    Gast gast;

    Kamer(){}

    public String toString(){

         if(vrij == true){

             return "De kamer is vrij!";
         }

         else{

             return gast;
         }
    }
}

我收到以下错误:
kamer.java:17: error: incompatible types: Gast cannot be converted to String
        return gast;

我在类中给出了对象Gast的字符串表示形式?
另一个类是否不继承我给出的表示形式?

最佳答案

尝试:

return gast.toString();

编辑:更好的是,如@Andreas注释所建议,如果gast可能为空(或手动检查是否为空),请使用String.valueOf(gast)

07-26 05:33