我有一个像这样的varargs构造函数:
public class Sentence {
public String[] str;
public Sentence(Object... text){
StringBuilder sb = new StringBuilder();
for (Object o : text) {
sb.append(o.toString())
.append(" ");
}
System.out.println(sb.toString());
}
}
该类可以通过此构造函数(ints,strings和Sentence对象)接受各种类型的数据。如何为这样的类创建正确的toString方法?
答案 0 :(得分:2)
不确定您要实现的目标,但是toString()方法......
返回的字符串表示形式 对象
...我想我会将你的sb.toString()
调用的结果存储为成员字符串变量(比如private String asString
),然后在toString()
方法中将其返回,覆盖方法对象:
public String toString() {
return this.asString;
}
答案 1 :(得分:0)
你无法在toString中打印Sentence,因为如果你相互初始化2个Senence对象,你可以获得无限循环。
因此,打印所有字符串和对象,如果可能来自Sentence对象的某些数据,或者只有“1个句子对象”指出它也作为init参数传递。