美文网首页程序员
java8新特性之函数式接口

java8新特性之函数式接口

作者: 冒险小A | 来源:发表于2018-03-25 20:14 被阅读0次
    函数式接口(Functional Interface):
    1. 首先这一定先是个接口,在这个接口中有且只有一个抽象方法,我们称之函数式接口.
    2. 如果一个接口是函数式接口,我们可以在接口上添加@FunctionalInterface标签表明这个是一个函数式接口.
    3. 无论是否标识@FunctionalInterface,只要满足上面第1点的接口,java都会直接识别为函数式接口.
    4. 简化函数式接口的使用是java提供lambda表达式唯一的作用.
    5. 可以用接口直接来引用一个lambda表达式.
    6. 函数式接口里允许定义java.lang.Object里的public方法;
      函数式接口里允许定义默认方法;
      函数式接口里允许定义静态方法;
      函数式接口里允许子接口继承多个父接口,但每个父接口中都只能存在一个抽象方法,且必须的相同的抽象方法。
    7. lambda表达式中的异常处理:lambda表达式中产生的异常要么直接在代码块中处理,要么接口的方法声明抛出.

    代码:
    public class FunctionalInterfaceTest {
        public static void main(String[] args) {
            P p= new P() {
                public void myWrite(int i) {
                    System.out.println(i);
                }
            };
            p.myWrite(123);
        }
    
        @FunctionalInterface
        interface P {
            void myWrite(int i);
        }
    }
    

    函数式接口完全是为实现Lambda而提出的。那现在我们利用Lambda表达式来改写上例:

    public class FunctionalInterfaceTest {
        public static void main(String[] args) {
            P p = num -> System.out.println(num);
            p.myWrite(123);
        }
    
        @FunctionalInterface
        interface P {
            void myWrite(int i);
        }
    }
    

    相关文章

      网友评论

        本文标题:java8新特性之函数式接口

        本文链接:https://www.haomeiwen.com/subject/wdhkcftx.html