zoukankan      html  css  js  c++  java
  • Java8新特性 -- 四大内置的核心函数式接口


    可以把这些函数式接口作为方法的参数。

    1.0 核心内置函数式接口一: 消费型接口
    @FunctionalInterface
    public interface Consumer<T> {

    void accept(T t);

    default Consumer<T> andThen(Consumer<? super T> after) {
    Objects.requireNonNull(after);
    return (T t) -> { accept(t); after.accept(t); };
    }
    }

    2.0 核心内置函数式接口二: 供给型接口
    @FunctionalInterface
    public interface Supplier<T> {
        T get();
    }

    3.0 核心内置函数式接口三: 函数型接口
    @FunctionalInterface
    public interface Function<T, R> {

    R apply(T t);

    default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
    Objects.requireNonNull(before);
    return (V v) -> apply(before.apply(v));
    }

    default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {
    Objects.requireNonNull(after);
    return (T t) -> after.apply(apply(t));
    }

    static <T> Function<T, T> identity() {
    return t -> t;
    }
    }

    4.0 核心内置函数式接口四: 断言型接口
    @FunctionalInterface
    public interface Predicate<T> {

    boolean test(T t);

    default Predicate<T> and(Predicate<? super T> other) {
    Objects.requireNonNull(other);
    return (t) -> test(t) && other.test(t);
    }

    default Predicate<T> negate() {
    return (t) -> !test(t);
    }

    default Predicate<T> or(Predicate<? super T> other) {
    Objects.requireNonNull(other);
    return (t) -> test(t) || other.test(t);
    }

    static <T> Predicate<T> isEqual(Object targetRef) {
    return (null == targetRef)
    ? Objects::isNull
    : object -> targetRef.equals(object);
    }
    }

  • 相关阅读:
    Makefile的常用技术总结
    NPOI 插入行[转]
    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 [转]
    Using Google Public DNS[Google公共DNS服务器]
    软件开发知识[TDD]
    MySQL函数之STRCMP()
    MySQL知识[INSERT语法]
    软件开发知识[ORM]
    软件开发知识[ADO.NET Entity Framework]
    mysql workbench 在模板与数据库间同步
  • 原文地址:https://www.cnblogs.com/zheting/p/7887396.html
Copyright © 2011-2022 走看看