函数式接口——@FunctionalInterface
Code
@FunctionalInterface
interface IService {
void say(String message);
}
public class FunctionalInterfaceTest {
public static void main(String[] args) {
IService serviceObj = message -> System.out.println("Hello, " + message);
serviceObj.say("Sam");
}
}
输出结果
Hello, Sam
Java8前已有的函数式接口
- java.lang.Runnable
- java.util.concurrent.Callable
- java.security.PrivilegedAction
- java.util.Comparator
- java.io.FileFilter
- java.nio.file.PathMatcher
- java.lang.reflect.InvocationHandler
- java.beans.PropertyChangeListener
- java.awt.event.ActionListener
- javax.swing.event.ChangeListener
内含43个函数式接口,如下:
InterfaceDescriptionBiConsumer代表了一个接受两个输入参数的操作,并且不返回任何结果BiFunction代表了一个接受两个输入参数的方法,并且返回一个结果BinaryOperator代表了一个作用于于两个同类型操作符的操作,并且返回了操作符同类型的结果BiPredicate代表了一个两个参数的boolean值方法BooleanSupplier代表了boolean值结果的提供方Consumer代表了接受一个输入参数并且无返回的操作DoubleBinaryOperator代表了作用于两个double值操作符的操作,并且返回了一个double值的结果DoubleConsumer代表一个接受double值参数的操作,并且不返回结果DoubleFunction代表接受一个double值参数的方法,并且返回结果DoublePredicate代表一个拥有double值参数的boolean值方法DoubleSupplier代表一个double值结构的提供方DoubleToIntFunction接受一个double类型输入,返回一个int类型结果DoubleToLongFunction接受一个double类型输入,返回一个long类型结果DoubleUnaryOperator接受一个参数同为类型double,返回值类型也为doubleFunction接受一个输入参数,返回一个结果IntBinaryOperator接受两个参数同为类型int,返回值类型也为intIntConsumer接受一个int类型的输入参数,无返回值IntFunction接受一个int类型输入参数,返回一个结果IntPredicate接受一个int输入参数,返回一个布尔值的结果IntSupplier无参数,返回一个int类型结果IntToDoubleFunction接受一个int类型输入,返回一个double类型结果IntToLongFunction接受一个int类型输入,返回一个long类型结果IntUnaryOperator接受一个参数同为类型int,返回值类型也为intLongBinaryOperator接受两个参数同为类型long,返回值类型也为longLongConsumer接受一个long类型的输入参数,无返回值LongFunction接受一个long类型输入参数,返回一个结果LongPredicateR接受一个long输入参数,返回一个布尔值类型结果LongSupplier无参数,返回一个结果long类型的值LongToDoubleFunction接受一个long类型输入,返回一个double类型结果LongToIntFunction接受一个long类型输入,返回一个int类型结果LongUnaryOperator接受一个参数同为类型long,返回值类型也为longObjDoubleConsumer接受一个object类型和一个double类型的输入参数,无返回值ObjIntConsumer接受一个object类型和一个int类型的输入参数,无返回值ObjLongConsumer接受一个object类型和一个long类型的输入参数,无返回值Predicate接受一个输入参数,返回一个布尔值结果Supplier无参数,返回一个结果ToDoubleBiFunction接受两个输入参数,返回一个double类型结果ToDoubleFunction接受一个输入参数,返回一个double类型结果ToIntBiFunction接受两个输入参数,返回一个int类型结果ToIntFunction接受一个输入参数,返回一个int类型结果ToLongBiFunction接受两个输入参数,返回一个long类型结果ToLongFunction接受一个输入参数,返回一个long类型结果UnaryOperator接受一个参数为类型T,返回值类型也为T