赞
踩
强调做什么,而不是以什么形式做。
以函数式接口Runnable为例讲解:
public class LambdaDemo {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello World");
}
};
new Thread(runnable).start();
}
}
标准格式:
(参数类型 参数名称) ‐> { 代码语句 }
public class LambdaDemo {
public static void main(String[] args) {
Runnable runnable = () -> System.out.println("Hello World");
new Thread(runnable).start();
}
}
这里可以看到我们使用lambda表达式的写法,使我们的代码更加简单,注重了结果的显示,避免了冗余代码。
Plane.java
@FunctionalInterface
public interface Plane {
void fly();
}
Customer.java
public class Customer {
public static void invokePlane(Plane plane){
plane.fly();
}
public static void main(String[] args) {
Customer.invokePlane(() -> System.out.println("飞机起飞咯!"));
}
}
Plane.java
@FunctionalInterface
public interface Plane {
void fly(String name);
}
Customer.java
public class Customer {
public static void invokePlane(String name , Plane plane){
plane.fly(name);
}
public static void main(String[] args) {
Customer.invokePlane("飞机一号",name -> System.out.println(name + ",起飞咯!"));
}
}
Plane.java
@FunctionalInterface
public interface Plane {
String fly();
}
Customer.java
public class Customer {
public static void invokePlane(Plane plane){
System.out.println(plane.fly());
}
public static void main(String[] args) {
Customer.invokePlane(() -> "飞机起飞咯!");
}
}
Plane.java
@FunctionalInterface
public interface Plane {
String fly(Date date,String name);
}
Customer.java
import java.util.Date;
public class Customer {
public static void invokePlane(Date date, String name, Plane plane) {
System.out.println(plane.fly(date, name));
}
public static void main(String[] args) {
Customer.invokePlane(new Date(),"飞机一号",(date, name) -> name + "在" + date.toLocaleString() + "时起飞咯!");
}
}
小tips:
可推导即可省略
以上代码中的lambda表达式全是最简写法,感兴趣的友友可以尝试该成完整版本。
这里以最后一个例子为例讲解一下完整版本。
import java.util.Date;
public class Customer {
public static void invokePlane(Date date, String name, Plane plane) {
System.out.println(plane.fly(date, name));
}
public static void main(String[] args) {
Customer.invokePlane(new Date(),"飞机一号",(date, name) -> { return name + "在" + date.toLocaleString() + "时起飞咯!";});
}
}
欢迎java热爱者了解文章,作者将会持续更新中,期待各位友友的关注和收藏。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。