FunctionalInterface函数式接口

2021-09-27  本文已影响0人  楼兰King
关于jdk8的新特性函数式接口示例以及描述
代码示例

import java.util.List;

@FunctionalInterface
public interface testjiekou {
    List test(int start, int end);
}


import com.alibaba.fastjson.JSON;

import java.util.Arrays;
import java.util.List;

public class ceshi {
    public static void main(String[] args) {
        shuju((start,end) ->{//重点1  (start,end) 这里只是一个引用
            System.out.println("开始"+start+"--结束"+end);
            return Arrays.asList("a","b");
        },6,9);

        List<String> list=Arrays.asList("a","b","c","d","e");
        testjiekou zhi=((start, end) -> {//重点4
            System.out.println("开始"+start+"--结束"+end);
            List list1=list.subList(start,end);
            System.out.println(JSON.toJSONString(list1));
            return list1;
        });
        zhi.test(0,2);//重点2 真正调用执行
        /**重点3  输出空,详解:为什么专门加一个这里输出,很多小伙伴以为上面重点4,是接收返回值,大大的误解。应该好好看看函数式接口概念。其实只是相当于比如原始的写法
         * 实现某个接口,在实现方法中写代码逻辑。所以重点4只是一个定义,重点2调用执行,千万不要误解。可以debug程序,你会发现其实到重点4并不会进入代码内部,直至运行到重点2,
         * 触发,然后进入重点4内部执行代码*/
        System.out.println(JSON.toJSONString(zhi));

    }
    public static void shuju(testjiekou jiekou,int start, int end){
        jiekou.test(start,end);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读