函数式接口
- 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法(默认方法,静态方法)的接口。
- 函数式接口其实在jdk8之前就已经有了,在jdk8后又加入了一个包“java.util.function”
- 函数式接口主要关注的是函数的输入输出
- 最大的作用是将函数作为参数进行传递
public class FunctionalInterface {
public static void main(String[] args){
List<Integer> numList= Arrays.asList(14,5,63,4,6,8,1,3);
System.out.println(numList);
// Predicate<Integer> predicate=n->n<3;
// eval(numList,predicate);
eval(numList,n->n%2==1);
}
public static void eval(List<Integer> numList, Predicate<Integer> predicate){
for (Integer num:numList){
if (predicate.test(num)){
System.out.print(num+",");
}
}
}
}
- 可以使用@FunctionalInterface来判断
@java.lang.FunctionalInterface
interface MyFun{
static int num=0;
String name="ming";
void fun();
default void print(){
System.out.println("print");
}
static void cut(){
System.out.println("cut");
}
}
参考:http://www.runoob.com/java/java8-functional-interfaces.html