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