IntelliJ Idea中使用Java8新特性lambda表达式

环境: 环境变量JAVA_HOME配置jdk1.8

idea配置支持lambda:

    File -> Project Structure -> Modules ->  Language level, 选择: 8-Lambdas, type annotations etc.

    File -> Project Structure -> Project  ->  Project language level, 选择: 8-Lambdas, type annotations etc.

pom文件中对编译器的配置:

<build>
    <finalName>spark.hadoop.study</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <showWarnings>true</showWarnings>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>

核心是指定source为1.8, 否则编译会报如下错误:

Fatal error compiling: 无效的目标发行版


用junit写的测试代码:

package com.sogou.baike;

import org.junit.Test;

/**
 * Created by denglinjie on 2017/9/6.
 */
public class LambdaTest {

    //所需接口
    interface MathOperation {
        int operate(int a, int b);
    }

    @Test
    public void testPlus() {
        // 不用类型声明
        MathOperation plus = (a, b) -> a + b;
        System.out.println(plus.operate(1, 2));
    }

    @Test
    public void testSub() {
        // 类型声明, 没有大括号以及返回语句
        MathOperation sub = (int a, int b) -> a - b;
        System.out.println(sub.operate(2, 1));
    }

    @Test
    public void testMulti() {
        // 用大括号及返回语句
        MathOperation multi = (int a, int b) -> {return a * b;};
        System.out.println(multi.operate(1, 2));
    }
}


上面三个测试案例分别应用了lambda表达式的三种不同使用方法
大致理解:用lambda表达式构造方法实体,等价于实现了接口中的方法,最终lambda表达式的返回值就是接口的实现类




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值