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