Java之Lambda表达式

Posted 行云至他方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之Lambda表达式相关的知识,希望对你有一定的参考价值。

在Java中,我们⽆无法将函数作为参数传递给⼀一个 ⽅方法,也⽆无法声明返回⼀一个函数的⽅方法。

 

Lambda表达式为Java添加了了缺失的函数式编程特

性,使我们能将函数当做⼀一等公⺠民看待

在将函数作为⼀一等公⺠民的语⾔言中,Lambda表达式 的类型是函数。但在Java中,Lambda表达式是对 象,他们必须依附于⼀一类特别的对象类型——函 数式接⼝口(functional interface)

 

通常,我们这么写代码

public static void main(String[] args) {
        System.out.println("hello java8");

        JFrame frame = new JFrame("Java窗体");
        JButton button = new JButton("click me");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("JButton clicked");
            }
        });

        frame.add(button);
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }    

 

 

 

 

改成Lambada表达式:

public static void main(String[] args) {
        System.out.println("hello java8");

        JFrame frame = new JFrame("Java窗体");
        JButton button = new JButton("click me");
        button.addActionListener(event -> System.out.println("click me"));
        frame.add(button);
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

 

简单明了,言简意感。

 

遍历一个数组:

    public static void main(String[] args) {

        List<Integer> list = Arrays.asList(1,2,3,4,5,6);

        list.forEach(i-> System.out.println("遍历数组:" + i));
    }

 

以上是关于Java之Lambda表达式的主要内容,如果未能解决你的问题,请参考以下文章

java8新特性之Lambda表达式入门

java8之lambda表达式

java之Lambda表达式

Java学习笔记之三十一详解Java8 lambda表达式

java8之lambda表达式

Java技术分享:Lambda表达式之接口实例化