第3章 ラムダ式を使ったプログラミング : 問題 4 : 関数型インターフェース
問題
Filter という名前を持つ関数型インターフェースが、Java API にはいくつあるか?
解答
Java 8 で Filter という名前を持つ関数型インターフェースは、以下のとおり
インターフェース | 抽象メソッド |
---|---|
java.nio.file. DirectoryStream.Filter<T> |
boolean accept(T entry) throws IOException |
javax.xml.stream. EventFilter |
boolean accept(XMLEvent event) |
java.io. FileFilter |
boolean accept(File pathname) |
java.io. FilenameFilter |
boolean accept(File dir, String name) |
java.util.logging. Filter |
boolean isLoggable(LogRecord record) |
javax.management. NotificationFilter |
boolean isNotificationEnabled(Notification notification) |
javax.imageio.spi. ServiceRegistry.Filter |
boolean filter(Object provider) |
javax.xml.stream. StreamFilter |
boolean accept(XMLStreamReader reader) |
さらに問題
これらのうちPredicate<T>
より付加価値のある関数型インターフェースはあるか?
解答
Predicate<T>
より付加価値のある関数型インターフェースは、次の二つ
java.nio.file.DirectoryStream.Filter<T>
… 例外をスローするjava.io.FilenameFilter
… 引数が2つある
… でもBiPredicate<T, U>
と比べると付加価値はない