当前位置: 移动技术网 > IT编程>开发语言>Java > Lambda表达式。

Lambda表达式。

2019年05月09日  | 移动技术网IT编程  | 我要评论

函数式编程思想:

面向对象思想:做一件事,先找能解决这件事的对象,然后调用该对象相应方法。

面向过程思想:只要能获取到结果,怎么做的不重要,重视结果,不重视过程。

冗余的代码:

 public static void main(string[] args) {
    new thread(new runnable() {
        @override
        public void run() {
            system.out.println("新线程:"+
            thread.currentthread().getname());
        }
    }).start();
    }

对于runnable的匿名内部类用法可以分析出:

 0、thread类需要runnable接口作为参数,其中run()为核心代码。

1、为了指定run()方法体,就必须使用runnable接口的实现类。

2、为了简化代码,可以用匿名内部类,但run()的方法名称,参数,返回值等也必须再写一遍

3、而实际上,只有run()方法体才是关键所在。

编程思想转化:做什么,而不是怎么做。

其实我们并不希望创建一个匿名内部类对象,只是不得不创建,我们真正希望做的事是:将run方法体的代码传给thread类。

lambda表达式:

jdk 1.8 新特性。

格式: 0、一些参数  1、一个箭头 2、一段代码。

(参数列表)->{ 重写方法的代码};

参数列表: 抽象方法的参数列表,有就写,没有就空着。

->: 传递,把参数传递给方法体。

{}: 重写抽象方法的方法体。

public static void main(string[] args) {
        new thread(()->{
            system.out.println("创建新线程:"+thread.currentthread().getname());

        }).start();
    }

简化lambda表达式:

lambda表达式是可推导,可省略。

0、(参数列表):数据类型可省略。

1、(参数列表):只有一个参数,()也可省略。

2、{代码} :只有一行,无论是否有返回值,{} ,return,分号 都可省略(要省略{},return

      和分号必须一起省略。

lambda的使用前提:

0、使用lambda必须有接口,且要求接口只有一个抽象方法。

1、使用lambda必须具有上下文推断,方法的参数或局部变量类型必须为lambda对应的接口类型

有且只有一个抽象方法的接口  称为 【 函数式接口 】。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网