zoukankan      html  css  js  c++  java
  • Java8 新特性

    Java8新特性相关学习

    一、内建函数式接口

    1. 功能型函数式接口

    1.1 接口定义    (有参数,有返回值)

    @FunctionalInterface
    public interface Function<T, R> {
        R apply(T t);
    
        //...
    }

    1.2 接口使用

    import java.util.function.Function;
    
    public class MyTempTest {
    
        // 功能性函数式接口
        @Test
        public void test01(){
            //补充: 实例方法的引用   实例::方法
            Function<String,Boolean> fun = "**Hello" :: startsWith;
            System.out.println(fun.apply("**"));
        }
    
    }

    2.  消费型函数式接口

    1.1 接口定义  (有参数,没有返回值)

          只能进行数据处理的操作,而没有任何返回;

    @FunctionalInterface
    public interface Consumer<T> {
    
        void accept(T t);
    
    }

    2.1 接口使用

    import java.util.function.Consumer;
    
    public class MyTempTest {
    
        // 消费型函数式接口
        @Test
        public void test02(){
            Consumer<String> con = System.out :: println;
            con.accept("hello world");
        }
    
    }

    3.  供给型函数式接口

    3.1 接口定义  (没有参数,有返回值)

    例如,在String类中提供有转小写方法,这个方法没有接收参数,但是有返回值。public String toLowerCase();

    @FunctionalInterface
    public interface Supplier<T> {
    
        T get();
    }

    3.1 接口使用

    import java.util.function.Supplier;
    
    public class MyTempTest {
    
        // 供给型函数式接口
        @Test
        public void test03(){
            Supplier<String> sup = "ABC" :: toLowerCase;
            System.out.println(sup.get());
        }
    }

    4.  断言型函数式接口

    4.1 接口定义  (进行判断处理)

        例如:String类中有一个equalsIgnoreCase() 方法

    @FunctionalInterface
    public interface Predicate<T> {
    
        boolean test(T t);
    }

    4.2 接口使用

    import java.util.function.Predicate;
    
    /**
     * @author: Linwei
     * @date 2021/5/29
     * @Description:
     */
    
    public class MyTempTest {
    
        // 断言型函数式接口
        @Test
        public void test04(){
            Predicate<String> pre = "HELLO" :: equalsIgnoreCase;
            System.out.println(pre.test("hello"));
        }
    }
    边系鞋带边思考人生.
  • 相关阅读:
    sqlserver 行转列 语文,数学,物理,化学
    除去字符串中不相临的重复的字符 aabcad 得 aabcd
    Mvc项目实例 MvcMusicStore 五
    c# 计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点.
    html-----016---HTTP 状态消息
    html-----015---HTML ASCII 参考手册
    html-----014---统一资源定位器
    html-----013----实体字符/HTML URL 编码
    html-----012---颜色的改变
    html-----011--子窗体iframe
  • 原文地址:https://www.cnblogs.com/crazytrip/p/14825237.html
Copyright © 2011-2022 走看看