java 箭头函数_Java8的Lambda表达式(箭头函数)

函数式编程思想

在数学中 函数就是有输入量和输出量的一套计算方案 也就是“拿什么东西做什么事情”

相对而言 面向对象过分强调必须通过对象的形式来做事情

而函数式思想则尽量忽略面向对象的复杂语法——强调做什么 而不是以什么形式做

面向对象的思想:

做一件事情 找一个能解决这个事情的对象 调用对象的方法 完成事情

函数式编程思想:

只要能获取到结果 谁去做的 怎么做的都不重要,重视的是结果 不重视过程

可能不太好理解 我们举个简单的栗子:

代码冗余

public static void main(String[] args) {

RunnableImpl runnable=new RunnableImpl();

Thread thread=new Thread(runnable);

thread.start();

// 使用匿名内部类简化

Runnable runnable1 = new Runnable() {

@Override

public void run() {

System.out.println(Thread.currentThread().getName() + " - new");

}

};

new Thread(runnable1).start();

// 继续简化

new Thread(new Runnable() {

@Override

public void run() {

System.out.println(Thread.currentThread().getName() + " - new");

}

}).start();

}

在这段多线程代码中:

1、Thread 类需要 Runnable 接口作为参数 因为其中的抽象 run 方法是用来指定线程任务内容的核心

2、为了指定 run 的方法体 不得不需要存在一个Runnable接口的实现类

3、为了省去定义一个RunnableImpl实现类的麻烦 不得不使用匿名内部类

4、因为必须覆盖重写抽象的run方法 所以方法名称 方法参数和方法返回值都不得不再写一遍 且不能写错

而实际上 只有方法体才是关键所在

因此 我们需要转换我们的编程思想

更加关注做什么 而不是怎么做

我们为了做这件事情而不得不创建一个匿名

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值