Java LanguageFunctional Interfaces

Introduction

In Java 8+, a functional interface is an interface that has just one abstract method (aside from the methods of Object). See JLS §9.8. Functional Interfaces.

List of standard Java Runtime Library functional interfaces by signature

Parameter TypesReturn TypeInterface
()voidRunnable
()TSupplier
()booleanBooleanSupplier
()intIntSupplier
()longLongSupplier
()doubleDoubleSupplier
(T)voidConsumer<T>
(T)TUnaryOperator<T>
(T)RFunction<T,R>
(T)booleanPredicate<T>
(T)intToIntFunction<T>
(T)longToLongFunction<T>
(T)doubleToDoubleFunction<T>
(T, T)TBinaryOperator<T>
(T, U)voidBiConsumer<T,U>
(T, U)RBiFunction<T,U,R>
(T, U)booleanBiPredicate<T,U>
(T, U)intToIntBiFunction<T,U>
(T, U)longToLongBiFunction<T,U>
(T, U)doubleToDoubleBiFunction<T,U>
(T, int)voidObjIntConsumer<T>
(T, long)voidObjLongConsumer<T>
(T, double)voidObjDoubleConsumer<T>
(int)voidIntConsumer
(int)RIntFunction<R>
(int)booleanIntPredicate
(int)intIntUnaryOperator
(int)longIntToLongFunction
(int)doubleIntToDoubleFunction
(int, int)intIntBinaryOperator
(long)voidLongConsumer
(long)RLongFunction<R>
(long)booleanLongPredicate
(long)intLongToIntFunction
(long)longLongUnaryOperator
(long)doubleLongToDoubleFunction
(long, long)longLongBinaryOperator
(double)voidDoubleConsumer
(double)RDoubleFunction<R>
(double)booleanDoublePredicate
(double)intDoubleToIntFunction
(double)longDoubleToLongFunction
(double)doubleDoubleUnaryOperator
(double, double)doubleDoubleBinaryOperator