2017-09-24 20 views
-1

メソッドの戻り型でコードの再利用性に関する質問があります。Javaメソッドの戻り値の型、定義済みコレクションvsコレクタ?

Java 8には、ユーザーがストリームが返すコレクションのタイプを指定するコレクターという概念があります。

基本検索メソッドが、あらかじめ定義されたコレクション、つまりリストを返す代わりに、Collectorパラメータを受け入れることは有益ですか?

定義済みのCollectionを持つメソッドは、Collectors.toList()をベースの取得メソッドに渡します。 java.util.stream.Streamはあなたが記述の機能を提供し

+0

場合によっては、はい。他にはない。ここで本当に何を求めているのですか? (「静的コレクション」とはどういう意味ですか?特定の実装クラスのオブジェクトを意味していますか?「静的」で共有されているオブジェクトへの参照ですか?) –

+0

こんにちは@Stephen C、静的を定義済み、私が意味するものは、メソッドがListを返すと宣言するのではなく、型が渡されたコレクターに依存するでしょう:) – Hans

+2

あなたの質問は理解するのが難しいです。あなたは "ベースの検索方法"と何を考えていますか? – Misha

答えて

0

ので、同じことを行うために他のクラスのために少し理由があります:代わりに、Collectorを取ることにストリームを収集し、結果を返すのは、それだけのリターンをはるかに理にかなっています開始ストリーム:より明確になり、呼び出し側はコレクションタイプの選択だけではなく柔軟性を提供します。

しかし、ほとんどの場合、適切なコレクションタイプを返すほうがよいと言えます。あなたは通常、特定のAPIにとってコレクションタイプが意味をなさないものよりもクライアントの方が優れており、後でコレクションを変更する理由がない限り、クライアントはそれほど気にしません。 Streamを返すだけであれば、クライアントには何を期待するかについての情報が少なくなります(情報をJavadocに入れて読んで理解する必要がある場合を除いて)。

+0

私はこの質問をする前に徹底的に考えていたはずです。ケースバイケースの場合です。 – Hans

関連する問題