8

私のチームメイトは、void を返さない新しい練習方法を紹介してくれました。

public class Test {
   public Test doCalculations() {
      //code
      return this;
   }
   public Test appendTitle(String test) {
      //code
      return this;
   }
}

void を返す代わりに、オブジェクト自体を返すことを提案しています。彼らが言うこのアプローチの利点の 1 つは、メソッドを連鎖できることです。

書く代わりに:

 while(1) {
    test.appendTitle("aaa");
    test.doCalculations();
    map.add(test);
 }

より洗練されたコードを書くことができます:

 while(1) {
     map.add(test.appendTitle("aaa").doCalculations());
 }

このアプローチの欠点は何ですか?毎日の使用にそれを含めることをお勧めしますか?

4

1 に答える 1

2

それは良い習慣ではないと思います。オブジェクトを返すメソッド シグネチャを見ると、それが返されているのがまったく新しいインスタンスなのか、それとも既存のインスタンスが返されているのかを知るにはどうすればよいでしょうか。不変クラスの場合、変更されたメソッドはクラスの新しいインスタンスを返すことに注意してください。 .

于 2013-06-07T08:57:46.403 に答える