2

我有一个像这样的可变参数构造函数:

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());

     }

 }

该类可以通过此构造函数接受各种类型的数据(整数、字符串和 Sentence 对象也是如此)。如何为这样的类创建正确的 toString 方法?

4

2 回答 2

2

不确定您要实现的确切目标,但是作为toString()方法...

返回对象的字符串表示

...我想我会将您的sb.toString()调用结果存储为成员 String 变量(例如private String asString),并在toString()覆盖 Object 中的方法的方法中返回它:

public String toString() {
  return this.asString;
}
于 2010-03-16T23:26:47.137 回答
0

您不能在 toString 中打印 Sentence,因为如果彼此初始化 2 个 Sentence 对象,则会出现无限循环。

因此,打印所有字符串和对象,以及是否可能来自 Sentence 对象的一些数据,或者仅打印“1 个句子对象”以指出它也作为 init 参数传递。

于 2010-03-16T23:27:31.460 回答