Java 如何在getter方法中返回null而不打印;空";在toString方法中,当以基于文本的方式获取输出时;地牢爬行;? 我正在尝试创建一个使用getter和setter方法的房间对象。对于每个房间,N、E、W或S都有一个房间或没有房间(空)。
1) 每个房间对象最多包含四个其他房间对象(N、E、W或S)的参照 2) toString()方法应该包括文件室的名称、文件室的描述和getExits()方法 }//末级地下城爬行Java 如何在getter方法中返回null而不打印;空";在toString方法中,当以基于文本的方式获取输出时;地牢爬行;? 我正在尝试创建一个使用getter和setter方法的房间对象。对于每个房间,N、E、W或S都有一个房间或没有房间(空)。,java,methods,Java,Methods,1) 每个房间对象最多包含四个其他房间对象(N、E、W或S)的参照 2) toString()方法应该包括文件室的名称、文件室的描述和getExits()方法 }//末级地下城爬行 #this is what I wan't my output to look like# [Hall] Its Dark. [N]orth: Bed [E]ast : Bath [W]est : Dining 我不知道我是否理解你的问题,但也许你可以这样做: public String toString() {
#this is what I wan't my output to look like#
[Hall]
Its Dark.
[N]orth: Bed
[E]ast : Bath
[W]est : Dining
我不知道我是否理解你的问题,但也许你可以这样做:
public String toString() {
return yourVariable == null ? "" : "text"
}
在这种情况下,如果
yourVar
为null,它将在getter方法中返回,而toString
将返回您想要的任何内容。您可以始终使用@override
@Override
public String toString(){
return "["+name+"]\n"+description+"\n"+getExits();
}
public String getExits(){
StringBuilder builder = new StringBuilder();
if(west != null)
builder.append("[W]est: "+west.getName()+"\n");
else
builder.append(";"); //append nothing if exit does not exist in that direction
//repeat for every room
return builder.toString();
}
这确实需要将StringBuilder导入到类中,您也可以使用纯字符串连接来代替我个人认为创建一个将类的对象作为变量的类是一个糟糕的想法。这是一个赋值。我同意。按照我应该做的方式做这件事没有多大意义,但是为了得到充分的信任,这件事必须以这种特殊的方式来做。谢谢你的意见。
@Override
public String toString(){
return "["+name+"]\n"+description+"\n"+getExits();
}
public String getExits(){
StringBuilder builder = new StringBuilder();
if(west != null)
builder.append("[W]est: "+west.getName()+"\n");
else
builder.append(";"); //append nothing if exit does not exist in that direction
//repeat for every room
return builder.toString();
}