IntelliJ Idea中使用Java8新特性lambda表达式
2017-09-06 16:12
246 查看
环境: 环境变量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表达式的返回值就是接口的实现类
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表达式的返回值就是接口的实现类
相关文章推荐
- android中使用java8新特性lambda表达式
- 在 JDK 早期版本中使用 Java 5 的语言特性
- 使用Java 5特性来简化反射编程
- 第一课 掌握java annotation特性与使用方法
- Java 1.5新特性Enum的学习和使用
- [转]JDK早期版本中使用Java 5语言特性
- 使用 Java 5 RowSet 新特性访问 IBM DB2 数据库
- java regex 正则部分高级特性使用
- Java中Native关键字的作用(提高性能,使用底层特性,访问其他语言库)
- 01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型
- JAVA IDE IntelliJ IDEA使用简介(三)—之你不能忘记的快捷键
- 最好的JAVA IDE IntelliJ IDEA使用简介(二)之基本操作
- 最好的JAVA IDE IntelliJ IDEA使用简介(一)之界面元素
- java 数组操作1.5后新特性--可变参数以及foreach使用
- 使用Spring Introducation 让Java类实现动态语言特性
- 使用Java5特性来简化反射编程
- 使用Spring Introducation 让Java类实现动态语言特性
- Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性
- Java 1.5新特性Enum的学习和使用
- Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性