2

私はこのような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());

     }

 }

このクラスは、このコンストラクターを介してさまざまなタイプのデータ(int、strings、およびSentenceオブジェクトも)を受け入れることができます。そのようなクラスに適切なtoStringメソッドを作成するにはどうすればよいですか?

4

2 に答える 2

2

何を達成しようとしているのか正確にはわかりませんが、toString()メソッドとして...

オブジェクトの文字列表現を返します

...sb.toString()呼び出しの結果をメンバーの文字列変数(たとえば)として保存し、それをObjectのメソッドをオーバーライドするメソッドにprivate String asString返すと思います。toString()

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

2つのSenenceオブジェクトを相互に初期化すると無限ループになる可能性があるため、toStringでSentenceを出力することはできません。

したがって、すべての文字列とオブジェクトを出力し、可能であればSentenceオブジェクトからのデータ、または「1センテンスオブジェクト」のみを出力して、それがinitパラメータとしても渡されることを示します。

于 2010-03-16T23:27:31.460 に答える