我希望通过传递和返回setter and getter
类型的对象来获得Word
根词:
class Master {
Word word = new Word();
word.setName("eating");
word.setRootWord(new Word("eat"));
System.out.println(word.getRootWord().toString());
}
class Word {
private String name;
private Word rootWord, synonyms, antonyms;
public Word () {
}
public Word (String name) {
this.name = name;
}
public setName (String name) {
this.name = name;
}
public getName () {
return this.name;
}
public setRootWord (Word rootWord) {
this.rootWord = rootWord;
}
public getRootWord () {
return this.rootWord;
}
}
打印的内容类似于Word@42a57993
如何在屏幕上打印eat
?或者更好的方法吗?
答案 0 :(得分:2)
我认为问题出在这一行:
System.out.println(word.getRootWord().toString());
切换到:
System.out.println(word.getRootWord().getName());
或者,作为其他选项,您可以覆盖单词类的toString()
方法,如下所示:
class Word {
public override String toString(){
return this.getName();
}
}
Word@42a57993
是对象的类名,这是Java中toString
方法的默认实现,因为编译器和object
类对对象一无所知除了它的类型。
答案 1 :(得分:0)
您需要覆盖对象类的toString
方法
答案 2 :(得分:0)
要停止打印相当任意的文字,您可以覆盖您的班级java.lang.Object#toString()
的{{1}}。
Word
输出对象的字符串表示形式。在映射应该是唯一的,但只是一个足够的纹理表示的意义上,它不一定是真正的序列化。许多调试器会调用此方法将对象的状态显示为工具提示。
要打印toString()
,请拨打eat
。
答案 3 :(得分:0)
使用此:
System.out.println(word.getRootWord().getName());