プログラミング Java

【Java入門】Consumerの使い方まとめ

投稿日:2021年6月5日 更新日:

概要

Consumer<T>は消費者と呼ばれる関数型インターフェースで、acceptメソッドを持ちます。
消費者というだけあって戻り値がありません。
また、引数はT型を1つとります、
 

基本的な使い方

関数型インターフェースはラムダ式またはメソッド参照を使うことができます。

ラムダ式

String型の引数を1つとる例です。

実行結果

メソッド参照

メソッド参照は最後のメソッドの手前に「::」を置きます。
()は不要で引数も与えないため、ラムダ式のように「str -> 」という変数名とアロー演算子も不要です。

実行結果

匿名クラス

ラムダ関数は匿名クラスとしても利用できます。
匿名クラスは、その場で定義して使いたいように一時的に定義できるクラスです。

実行結果

その他のメソッド

andThen

Consumerを繋げて処理することができるメソッドです。
andThenでつながっている左辺から順に実行されます。

実行結果

 

特殊化されたインターフェース

2つの引数を指定する

BiConsumer<T,U>
T – 第1引数の型
U – 第2引数の型

Consumerを特殊化して引数を2個取るようにしたものです

実行結果

プリミティブ型の引数を指定する

IntConsumer
Consumerに対してint型に特殊化したインターフェースです。
単一のint値引数を受け取って結果を返さないオペレーション(void型)を表します。

実行結果

他にも、以下があります。
DoubleConsumer
LongConsumer

オブジェクト型とプリミティブ型の引数を指定する

ObjIntConsumer<T>
T -オブジェクト引数の型
※ジェネリクスにプリミティブ型は使えないため指定なし

実行結果

他にも、以下があります。
ObjDoubleConsumer
ObjLongConsumer

 

まとめ

  • Consumerは引数1つを取り、戻り値のない関数型インターフェースである。
  • 複数のConsumerに対して1つの引数をandThenメソッドで連続して処理することができる。
  • 特殊化されたインターフェースが用意されており、それぞれの用途で使うことができる。

その他の関数型インターフェース

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-, , , ,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【Java】ポートフォリオ例(高配当株分析ツール)

概要 ポートフォリオにスクレイピングツールが良いと以前の記事でご紹介しました。 どんなものが作れるのか? ということの具体例として、私が作成したスクレイピングツールを紹介します。 仕様 スクレイピング …

Springでバリデーションがimportされていないときの対処法

状況 SpringF/Wでバリデーションを実装したいが、@NotNullや@Minといったアノテーションが使えない。 @NotNullを使おうとすると、import com.sun.istack.No …

junit, テスト, junit5

JUnit5の環境構築

概要 JUnit5を使う環境を構築します。 IDE:IntelliJ IDEA ビルドツール:Gradle 環境構築 IntelliJのダウンロード こちらからCommunity版をダウンロードします …

pageEncodingとcontentTypeのcharsetの違い

pageEncodingとcontentTypeのcharsetは処理されるタイミングが異なります。 それによって文字化けの原因につながっているので、どのように設定すればいいかを解説していきます。 違 …

CompsiteパターンでHTMLタグを実現するには?

Compositeパターンに応用できそうなものとして、 HTMLタグなんかいいかと思いコーディングしてみました。   クラス図   説明 Compositeパターンは再帰構造を実現 …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。