CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第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>と比べると付加価値はない