LoginSignup
1
1

More than 3 years have passed since last update.

Java 関数型インターフェースについて

Posted at

関数型インターフェースとは

抽象メソッドを1つだけ持つインターフェースのことで、ラムダ式やメソッド参照を渡す、代入先にすることができます。

関数型インターフェースの条件

・抽象メソッドを一つだけ持てる
・Objectクラスのpublicメソッドである抽象メソッドは含まれない
・defaultメソッドとstaticメソッドを複数持たせることができる

関数型インターフェースの定義は下記のように書きます。

main.java

@FunctionalInterface
public interface Sample {
    public abstract void Hello(String name);
}

@FunctionalInterfaceというアノテーションをつけることで、関数型インターフェースだということを明示し、これによってインタフェースが関数型インターフェースの条件を満たしていない場合にコンパイルエラーを出すことができます。

種類

java.util.functionパッケージで、関数型インターフェースにはいくつかの種類が提供されています。受け取る引数と返す結果のパターンから大体4種類に分けられます。
基本的な関数型インターフェースは以下のとおりです。

種類 抽象メソッド できること
Supplier T get() 引数がなく、T型の戻り値を返す
Consumer void accept(T t) 処理を返す(値は返さない)。
Function R apply(T t) 引数としてTを受け取り、結果としてRを返す
Predicate boolean test(T t) T型の引数を受け取り、booleanの値を結果として返す

他にも、引数が2つの場合のインターフェース等種類があるので、用途に応じて使い分けます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1