zoukankan      html  css  js  c++  java
  • java8新增特性(二)----函数式接口(Functional)

         上一篇博客介绍了java8新增的Lambda表达式,这一节介绍一下java8的函数式编程,两者之间有什么联系呢?请往下看~~~

         Lambda表达式怎样在java类型中表示的呢?

         语言设计者投入了大量的精力来思考怎样使现有的函数友好地支持lambda。终于採取的办法是:添加函数式接口的概念。函数式接口接口就是具有一个方法的普通接口。像这种

    接口能够被隐式的转换为Lambda表达式!。。

         每个Lambda表达式都相应一个 类型,一般是接口类型。而“函数式接口”是指只包括一个抽象方法的接口,每个该类型的lambda表达式都会被匹配到这个抽象方法。

    由于默认方法不算抽象方法,所以你也能够给你的函数式接口加入默认方法。!

         我们能够把Lambda表达式当作随意一个抽象方法的接口类型。你的接口达到这个要求。你仅仅须要给你的接口加入@FunctionalInterface注解,编译器假设发现你标注了这个注解的接口有多于一个接口的时候会报错!!

    看一下以下函数式编程的样例:

    package com.panther.dong.java8.functional;
    
    /**
     * Created by panther on 15-8-22.
     */
    public class FunctionTest {
        public static void main(String[] args) {
            Converter<String, Integer> converter = (from) -> Integer.parseInt(from);
            Integer integer = converter.convert("231");
            System.out.println(integer);
        }
    }
    
    @FunctionalInterface
    interface Converter<F, T> {
        T convert(F from);
    }

    执行结果:

    231

      注意:接口中的默认方法和静态方法并不会影响函数式接口的规定。能够随意使用,可是普通方法仅仅能有一个

  • 相关阅读:
    get与post的区别
    shell脚本之变量替换
    Oracle sql性能优化
    HTTP协议报头
    Oracle查看表空间和删除表空间
    shell脚本之cat和wc命令
    java设计模式之单例模式
    Wireshark基本介绍和学习TCP三次握手转
    wrong number of arguments (1 for 2)
    PHP生成.url文件 网站常用的保存到桌面功能
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7007387.html
Copyright © 2011-2022 走看看