前言
后面打算整一java8新特性的记录,因为之前也没过多的了解过这个java8新特性,毕竟没有java8新特性也不妨碍开发项目。
但是在之前有事没事的时候看到有一些开源项目中还是用到了新特性,有点整不明白,所以就学习一下并记录
自己手动插眼ing…
一、lambda使用场景
(1)使用条件:在使用函数式接口作为形参的方法中使用,列如:
(2)函数式接口:有且仅有一个抽象方法,列如:
(3)如何使用:就可以使用lambda表达式,列如:
二、lambda使用参数不同
1、无参
函数式接口:
public interface Eatable {
void eat();
}
方法:
public void runEat(Eatable e){
e.eat();
}
调用方法:
runEat(() -> System.out.println("吃饭饭"))
1、有参
函数式接口:
public interface Eatable {
void eat(String str);
}
方法:
public void runEat(Eatable e){
e.eat("吃饭饭");
}
调用方法:
runEat( s -> System.out.println(s) )
3、有参且有返回值
函数式接口:
public interface Eatable {
int eat(int x ,int y);
}
方法:
public void runEat(Eatable e){
e.eat(5,5);
}
调用方法:
runEat( (x,y) -> x+y )
或者
runEat((x,y) -> {return x+y;})
后言
基础的lambda就是这样,可以减少你的代码工作量
比如最常见的就是创建一个线程执行,如果不想创建一个继承runnable接口的类的话,匿名内部类是个好选择。
后面的话有多了lambda表达式的选择。