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

当ページのリンクには広告が含まれています。
目次

概要

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メソッドで連続して処理することができる。
  • 特殊化されたインターフェースが用意されており、それぞれの用途で使うことができる。

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

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次