美文网首页工作生活
新特性15-新接口说明

新特性15-新接口说明

作者: 三秋十里 | 来源:发表于2019-07-04 16:19 被阅读0次
    1.Predicate 接口

    Predicate 接口只有一个参数,返回boolean类型。该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑(比如:与,或,非):

    Predicate<String> predicate = (s) -> s.length() > 0;
    
    predicate.test("foo");              // true
    
    predicate.negate().test("foo");     // false
    
    Predicate<Boolean> nonNull = Objects::nonNull;
    
    Predicate<Boolean> isNull = Objects::isNull;
    
    Predicate<String> isEmpty = String::isEmpty;
    
    Predicate<String> isNotEmpty = isEmpty.negate();
    
    2.Function 接口

    Function 接口有一个参数并且返回一个结果,并附带了一些可以和其他函数组合的默认方法(compose, andThen):

    Function<String, Integer> toInteger = Integer::valueOf;
    
    Function<String, String> backToString = toInteger.andThen(String::valueOf);
    
    backToString.apply("123");     // "123"
    
    3.Supplier 接口

    Supplier 接口返回一个任意范型的值,和Function接口不同的是该接口没有任何参数。

    Supplier<Person> personSupplier = Person::new;
    
    personSupplier.get();   // new Person
    
    4.Consumer 接口

    Consumer 接口表示执行在单个参数上的操作。

    Consumer<Person> greeter = (p) -> System.out.println("Hello, " + p.firstName);
    
    greeter.accept(new Person("Luke", "Skywalker"));
    
    5.Comparator 接口

    Comparator 是老Java中的经典接口, Java 8在此之上添加了多种默认方法:

    Comparator<Person> comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName);
    
    Person p1 = new Person("John", "Doe");
    
    Person p2 = new Person("Alice", "Wonderland");
    
    comparator.compare(p1, p2);             // > 0
    
    comparator.reversed().compare(p1, p2);  // < 0
    

    相关文章

      网友评论

        本文标题:新特性15-新接口说明

        本文链接:https://www.haomeiwen.com/subject/poerhctx.html