プログラミング Java

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

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

ランキング評価する

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

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

Thymeleafで1000円単位をカンマ区切りで表示する方法

Thymeleaf(テンプレートエンジン)で金額などの数値を 1000円単位のカンマ区切りで表示する方法です。 ここでは、カンマ区切りの機能はオブジェクト側で実装し、 Tymeleaf(View)は表 …

【Java】文字列の完全一致と部分一致を判定する方法

Stringオブジェクトのmatches、containsメソッドを使った説明です。 戻り値:boolean   完全一致 説明 完全一致は文字列が同じであることを判定するだけです。 そのた …

【Java入門】クラスとインスタンスの違いを分かり易い言葉で説明します。

概要 クラスとインスタンスの違いについて、できるだけ分かり易い言葉や表現で説明します。   クラス 設計書だよ。 以上です。 ほんとマジで。 どんなデータと操作が可能かを決めているだけなので設計書と表 …

【Java入門】演算子の種類と使い方まとめ

概要 Javaで使う演算子(計算を行うための記号)について、種類と使い方をまとめました。 備忘録として使ってください。   演算子 代入演算子 値の代入や代入時に計算を行う演算子です。 [crayon …

【SpringBoot入門】#5~ 登録画面の作成

概要 共通ヘッダーの「新規登録」リンクから遷移する、書籍情報登録画面を作成します。 遷移できるようにControllerの作成と、遷移先である画面をHTMLで作成していきます。   Formクラスの作 …

記事を探す

SpringFramworkの良書

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

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