varargs构造函数的toString方法

时间:2010-03-16 23:24:04

标签: java constructor tostring variadic-functions

我有一个像这样的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方法?

2 个答案:

答案 0 :(得分:2)

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

  

返回的字符串表示形式   对象

...我想我会将你的sb.toString()调用的结果存储为成员字符串变量(比如private String asString),然后在toString()方法中将其返回,覆盖方法对象:

public String toString() {
  return this.asString;
}

答案 1 :(得分:0)

你无法在toString中打印Sentence,因为如果你相互初始化2个Senence对象,你可以获得无限循环。

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