//函数式接口:只有一个抽象方法的接口称为函数式接口. 可以使用注解 @FunctionalInterface 修饰 @FunctionalInterface public interface MyFun { public Integer getValue(Integer num); } import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List;…
写在前面 前面积极响应读者的需求,写了两篇Java新特性的文章.有小伙伴留言说:感觉Lambda表达式很强大啊!一行代码就能够搞定那么多功能!我想学习下Lambda表达式的语法,可以吗?我的回答是:没问题!这不,Lambda表达式来了! 匿名类到Lambda表达式 我们先来看看从匿名类如何转换到Lambda表达式呢? 这里,我们可以使用两个示例来说明如何从匿名内部类转换为Lambda表达式. 匿名内部类到Lambda表达式 使用匿名内部类如下所示. Runnable r = new Runnab…
Lambda表达式,案例一:new Thread(() -> System.out.println("thread")); Lambda表达式,案例二:由参数/箭头和主体组成: (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()); 之前的代码形式: Comparator<Apple> byWeight = new Comparator<Apple>() { public i…
函数式接口 函数式接口是1.8中的新特性,他不属于新语法,更像是一种规范 面向对象接口复习 在这里先回顾一下面向对象的接口,创建接口的关键字为interface,这里创建一个日志接口: public interface LogService { void info(); } 众所周知,Java中的接口是不能直接创建实例的,因为他的抽象方法没有得到实现: 当我们想要创建接口实例的时候一般都通过实现类来获取实例: public class LogServiceImpl implements LogS…
Lambda表达式主要是替换了原有匿名内部类的写法,也就是简化了匿名内部类的写法.lambda语法结构: (参数1,参数2...)->{重写方法的内容,不定义方法名} 先看一个使用匿名内部类定义一个新线程的方法: @Test public void test1(){ new Thread(new Runnable() { @Override public void run() { for(int x=0;x<100;x++){ System.out.println("run...&q…
1.java bean public class Employee { private int id; private String name; private int age; private double salary; public Employee() { } public Employee(String name) { this.name = name; } public Employee(String name, int age) { this.name = name; this.a…
使用lambda表达式的延迟加载特性对代码进行优化:…
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; import org.junit.Test; /* * J…
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryService.java 需求:我想获取CategoryService.fiall()查询出来的数据中的,所有category_type的集合 //读取数据 List<Category> categoryList = CategoryService.fiall(); //lambda表达式 List<I…
Java8 新特性学习 Lambda表达式 和 Stream 用法案例 学习参考文章: https://www.cnblogs.com/coprince/p/8692972.html 1.使用lambda代理匿名内部类 //不用lambda new Thread(new Runnable() { @Override public void run() { System.out.println("java 8 lambda 匿名类"); } }).start(); //使用lambda…