Javaの関数型インターフェースのConsumerのサンプルです。
目次
説明 | Consumerインターフェース |
サンプル | クラスにConsumerインターフェースを実装する |
匿名クラスでConsumerインターフェースを使用する |
Consumerインターフェース
インターフェース | public interface Consumer<T> |
メソッド | void accept(T t) |
- Consumerは、入力はありますが出力しません。消費者という意味です。
- acceptメソッドは、引数があり、戻り値はありません。
- ConsumerのTはメソッドの引数の型です。
- 以下は、OracleのJava8のConsumerインターフェースのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/function/Consumer.html
関数型インターフェースのConsumerのサンプルです。
package test1;
import java.util.function.Consumer;
public class Test1 {
public static void main(String[] args) {
Consumer<Integer> make1 = a -> System.out.println(a + "です");
make1.accept(3); // 3です
}
}
3行目は、java.util.functionパッケージのConsumerインターフェースをimportしています。
8行目は、Consumerインターフェースを使用したラムダ式です。
Consumer<Integer>の
Integerは、Consumer<T>のTでメソッドの引数の型です。
10行目は、acceptメソッドでIntegerの引数があり戻り値はありません。
クラスにConsumerインターフェースを実装する
package test1;
import java.util.function.Consumer;
public class Test1 {
public static void main(String[] args) {
String str1 = "red and blue";
Make1 make1 = new Make1();
make1.accept(str1); // red and blueです
}
}
class Make1 implements Consumer<String> {
@Override
public void accept(String c1) {
System.out.println(c1 + "です");
}
}
3行目は、java.util.functionパッケージのConsumerインターフェースをimportしています。
13行目は、Consumerインターフェースを実装しています。
10行目は、acceptメソッドです。引数を渡しますが戻り値はありません。文字列を出力します。
匿名クラスでConsumerインターフェースを使用する
package test1;
import java.util.function.Consumer;
public class Test1 {
public static void main(String[] args) {
String str1 = "red and blue";
new Consumer<String>() {
@Override
public void accept(String c1) {
System.out.println(c1 + "です");
}
}.accept(str1); // red and blueです
}
}
3行目は、java.util.functionパッケージのConsumerインターフェースをimportしています。
10行目は、匿名クラスです。クラス名はありません。
15行目は、acceptメソッドです。引数を渡しますが戻り値はありません。文字列を出力します。
関連の記事