プログラミング 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


関連記事

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

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

Camtasia(カムタジア)でKrisp(クリスプ)を使う方法

Camtasiaで動画撮影する時のノイズ除去にKrispを導入する方法です。 前提 Krisp(無料版でOK)をインストール済みであること。 Pro版を試したい方は以下の招待URLからダウンロードして …

no image

【MySQL】自テーブルのカラムの値を0埋めで更新する方法

構文

記載例

  UPDATE前後の値を比較 UPDATE …

Javaで数値(int)を部分一致判定する

文字列に変換して判定します。 <方法> ・matchesメソッドで正規表現使う。 ・containsメソッドに判定文字を渡す。 また、メソッドに切り出すと、intを変換する処理を個別に書かなくてよくな …

ModelからBindingResultが消える原因と対処方法

環境 Java(SpringFramework) Thymeleaf 状況 更新画面でバリデーションエラーにより更新が失敗したというようなケースにおいて、 BuindingResultにFormのエラ …

記事を探す

SpringFramworkの良書

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

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

サイト内検索