美文网首页
Java8 函数式编程初识之Lambda表达式

Java8 函数式编程初识之Lambda表达式

作者: 大橙喵 | 来源:发表于2017-09-23 08:59 被阅读23次

1. 环境

  1. JDK 8
  2. Eclipse Oxygen 或其他支持Java8 的Eclipse版本
  3. Eclipse 自带的 Junit4

2. Lambda表达式

先给出一个定义: 如果一个接口中仅有一个待实现的方法则它在实现的时候可以用Lambda代替.
如,在Java8以前,以创建线程为例.我们需要实现Runnable接口中的run方法将其实例作为参数传给Thread的构造方法,代码如下

Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            // BlahBlahBlah
            System.out.println("BlahBlahBlah");
        }
    });

写了很多格式化的不必要的代码,这就造成了代码冗长,可读性变得很差.从Java8 开始,凡是形如以上格式的代码统统可以使用lambda 表达式来表达

Thread thread1 = new Thread(() -> {
        // BlahBlahBlah
        System.out.println("BlahBlahBlah");
    });

变得清爽了很多.以前的那些格式化的代码变成了形如 ()->{} 的格式.减少了不必要的代码量.
在以上形式的lambda 表达式中,是没有参数的,如果遇到了需要参数的方法,则只需要在()->{} 的圆括号中写入参数即可,示例代码如下
我们先创建一个接口命名为SomeInterface,可见它只有一个待实现的方法,并且需要x,y两个int 类型的参数

package cn.monoy.demos;
public interface SomeInterface {
    public void doSomething(int x, int y);
}

创建一个类,里面有一个方法需要SomeInterface 类型的值作为参数,为了调用方便设为静态的

package cn.monoy.demos;
public class SomeClasses {
    public static void someMethod(SomeInterface si) {
        // do something
    }
}

在主方法调用SomeClasses.someMethod方法时只需要如下代码即可,JVM 会自动推断圆括号中的x,y 是SomeInterface的doSomething方法的参数,他们为int 类型,而不必我们手动声明

public static void main(String[] args) {
        SomeClasses.someMethod((x, y) -> {
            // do something
        });
    }

相关文章

  • Java8 函数式编程初识之函数式接口

    在Java8 函数式编程初识之Lambda表达式中讲了如果一个接口中仅有一个待实现的方法则它可以用Lambda代替...

  • Java8-函数式编程

    Java8-函数式编程 为什么java8 的Lambda 这么受关注? Java8可以用Lambda表达式很简便的...

  • Java8 - Lambda

    函数式编程在并发和事件驱动编程中优势明显。所以Java8引入了Lambda表达式的概念。 面向对象编程与函数式...

  • Lambda表达式总结

    Lambda表达式总结使用范例以及例子Lambda表达式基础语法函数式接口Lambda练习Java8四大内置函数式...

  • 说说 Java 中的函数式编程

    Java8 提供了以下两种方式,来支持函数式编程。 Lambda 表达式 方法引用 (MethodReferenc...

  • Java 函数式接口说明

    整理一下 Java8 之后的重要概念 函数式接口的说明和团队分享,这是函数式编程和 Lambda 表达式的基础。虽...

  • Java8函数式编程之三:函数式接口

    上一篇博客Java8函数式编程之二 : Lambda表达式 - 简书介绍了Lambda表达式,最后也留下了一个问题...

  • 2019-05-25

    lambda表达式学习第一天 java8已经更新了将近五年,静下心来学习函数式编程 常见的lambda表达式的语法...

  • JDK8新特性 - 函数式编程

    一、JDK8之自定义函数式编程 1.使用Lambda表达式,自定义lambda接口编程 定义⼀个函数式接口 需要标...

  • 从点滴基础探究Kotlin的独特魅力

    0. 序言 从接触Rxjava了解到函数式编程,从了解函数式编程想起Lambda表达式,从Lambda表达式接触到...

网友评论

      本文标题:Java8 函数式编程初识之Lambda表达式

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