java8-函数式接口

函数式接口

  • 函数式接口(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

猜你喜欢

转载自blog.csdn.net/designer01/article/details/81702299