9

StringBuilder クラスでは、次のようにできます。

StringBuilder sb = new StringBuilder();
sb.append( "asd").append(34);

メソッド append は StringBuilder インスタンスを返し、それを継続的に呼び出すことができます。

私の質問は、静的メソッドのコンテキストで行うことは可能ですか? クラスインスタンスなし

4

5 に答える 5

14

はい。このように(未テスト)。

public class Static {

  private final static Static INSTANCE = new Static();

  public static Static doStuff(...) {
     ...;
     return INSTANCE;
  }

  public static Static doOtherStuff() {
    ....
    return INSTANCE;
  }
}

のようなコードを持つことができるようになりました。

Static.doStuff(...).doOtherStuff(...).doStuff(...);

私はそれに対してお勧めします。

于 2010-12-18T12:23:31.600 に答える
6

これはメソッドチェーンと呼ばれます。

そのためには、インスタンス化されたオブジェクトが常に必要です。申し訳ありませんが、関連付けられたオブジェクトがないため、静的コンテキストでは実行できません。

于 2010-12-18T12:04:13.263 に答える
2

これが欲しいですか?

public class AppendOperation() {
    private static StringBuilder sb =  new StringBuilder(); 

    public static StringBuilder append(String s){
        return sb.append(s);
    }

    public static void main(String... args){

         System.out.println(AppendOperation.append("ada").append("dsa").append("asd"));

    }

}

たぶん私は質問(静的コンテキスト)を正しく理解していません

これのことですか?

静的 {

} //もちろんこれもできます

上記のすべてではない場合、append() は静的ではないため、静的メソッドなしでは実行できません

于 2010-12-18T11:53:34.903 に答える
1

スタティックにビルダー パターンが必要ですか? いいえ。静的をインスタンスに変換するのが最善です。

于 2010-12-18T11:59:37.313 に答える