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);
    }
    }

  • 相关阅读:
    day1 instance,round,divmod,imput, 字符串
    Django中如何将javascript中的变量传给位于javascript内的{% url %}中的参数?
    demo_33 评论发布弹窗实现
    demo_32 富文本渲染
    demo_31 详情页面数据初始化
    demo_30 内容预加载
    demo_29 详情页页面展示
    demo_28 使用自定义事件同步数据
    demo_27 保存标签页数据
    demo_26 编辑标签页
  • 原文地址:https://www.cnblogs.com/zheting/p/7887396.html
Copyright © 2011-2022 走看看