Java 関数型インターフェースのサンプル(Supplier)

Javaの関数型インターフェースのSupplierのサンプルです。

目次

説明 Supplierインターフェース
サンプル クラスにSupplierインターフェースを実装する
  匿名クラスでSupplierインターフェースを使用する

Supplierインターフェース

インターフェース public interface Supplier<T>
メソッド T get()

関数型インターフェースのSupplierのサンプルです。

package test1;

import java.util.function.Supplier;

public class Test1 {
	public static void main(String[] args) {
		
		Supplier <String> c1 = () -> "青です";
		
		String b = c1.get();
		System.out.println(b); //青です
	}
}

3行目は、java.util.functionパッケージのSupplierインターフェースをimportしています。
8行目は、Supplierインターフェースを使用したラムダ式です。
10行目は、getメソッドで引数はなし、戻り値はあります。

 

クラスにSupplierインターフェースを実装する

クラスにSupplierインターフェースを実装するサンプルです。

package test1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Supplier;

public class Test1 {
	public static void main(String[] args) {

		Message ms = new Message();
		
		for (String a:ms.get()) {
			System.out.println(a+"です"); //赤です 黄です 青です
		}
	}
}
 class Message implements Supplier<List<String>> {
	@Override
    public  List<String> get() {
		List<String> c1 = new ArrayList<>(Arrays.asList("赤","黄","青"));
		return c1;
    }
}

5行目は、java.util.function.Supplierインターフェースをimportしています。
17行目は、Supplierインターフェースを実装しています。
12行目は、getメソッドです。戻り値はありますが引数はありません。
リストの値分文字列が出力されます。

 

匿名クラスでSupplierインターフェースを使用する

匿名クラスでSupplierインターフェースを使用するサンプルです。

package test1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Supplier;

public class Test1 {
	public static void main(String[] args) {

		List<String> c2 = new Supplier<List<String>>() {
			@Override
		    public  List<String> get( ) {
				List<String> c1 = new ArrayList<>(Arrays.asList("赤","黄","青"));
				return c1;
		    }
		}.get();
		
		for (String a:c2) {
			System.out.println(a+"です"); //赤です 黄です 青です
		}
	}
}

5行目は、java.util.functionパッケージのSupplierインターフェースをimportしています。
10行目は、匿名クラスです。クラス名はありません。
16行目は、getメソッドです。引数ありませんが戻り値はあります。
19行目は、リストの値分文字列が出力されます。

関連の記事

Java ラムダ式のサンプル
Java 関数型インターフェースのサンプル(Consumer)

△上に戻る