JAVA——进阶语法——使用lambda表达式(λ)进行函数式编程,对匿名内部内代码简化思路及案例在线程中的应用
Posted 叶不修233
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA——进阶语法——使用lambda表达式(λ)进行函数式编程,对匿名内部内代码简化思路及案例在线程中的应用相关的知识,希望对你有一定的参考价值。
JAVA——进阶语法——使用lambda表达式(λ)进行函数式编程,对匿名内部内代码简化思路及案例、在线程中的应用
- 注意1:本文介绍的函数式编程是对匿名内部类写法的进一步简化。需要掌握前置知识点:匿名内部类的用法。
- 注意2:仅适用于只有一个抽象方法的接口实现
- 注意3:(听说没事多用lambda表达式装逼容易被打~
例1:接口的实现-普通抽象方法
一、定义接口
1.首先定义一个只有一个抽象方法的接口
//定义接口Animal1
public interface Animal1
//在接口下写一个抽象方法run()
void run();
二、实现接口
1.常规操作- 使用匿名内部类实现接口
public class Test1
public static void main(String[] args)
/**
* 常规操作- 使用匿名内部类实现
*/
Animal1 dog1 = new Animal1()
@Override
public void run()
System.out.println("吃肉肉");
;
dog1.run();
2.使用lambda表达式(λ)进行函数式编程实现
public class Test1
public static void main(String[] args)
/**
* 使用lambda表达式(λ)进行函数式编程
*/
Animal1 dog2 = () ->
System.out.println("吃肉肉");
;
dog2.run();
3.使用lambda表达式(λ)进行函数式编程-如果重写的方法体中只有一行代码,大括号可以省略
public class Test1
public static void main(String[] args)
/**
* 使用lambda表达式(λ)进行函数式编程-如果重写的方法体中只有一行代码,大括号可以省略
*/
Animal1 dog3 = () -> System.out.println("吃肉肉");
dog3.run();
例2:接口的实现-带参数的抽象方法
一、定义接口
1.首先定义一个只有一个抽象方法的接口
public interface Animal2
void run(String name);
二、实现接口
1.常规操作- 使用匿名内部类实现接口
例1中已介绍,非本文重点,不再详述,略。
2.使用lambda表达式(λ)进行函数式编程实现
public class Test2
public static void main(String[] args)
/**
* 使用lambda表达式(λ)进行函数式编程
*/
Animal2 dog1 = (name) -> System.out.println(name+"吃肉肉");
dog1.run("大黄");
例3:接口的实现-带参数和返回值的抽象方法
一、定义接口
1.首先定义一个只有一个抽象方法的接口
public interface Animal3
String run(String name);
二、实现接口
1.常规操作- 使用匿名内部类实现接口
略。
2.使用lambda表达式(λ)进行函数式编程-有大括号时,使用return关键字,后面加返回内容
public class Test3
public static void main(String[] args)
/**
* 使用lambda表达式(λ)进行函数式编程-有大括号时,使用return关键字,后面加返回内容
*/
Animal3 dog1 = (name) ->
return name+"吃肉肉";
;
String msg1 = dog1.run("大黄");
System.out.println(msg1);
3.使用lambda表达式(λ)进行函数式编程-省略大括号时,return关键字也必须省略
public class Test3
public static void main(String[] args)
/**
* 使用lambda表达式(λ)进行函数式编程-省略大括号时,return关键字也必须省略
*/
Animal3 dog2 = (name) -> name+"吃饭饭";
String msg2 = dog2.run("大白");
System.out.println(msg2);
例4:Runnable接口的实现-lambda表达式在多线程中的应用
一、实现接口
1.常规操作- 使用匿名内部类实现接口
Runnable r1 = new Runnable()
@Override
public void run()
System.out.println(Thread.currentThread().getName());
;
new Thread(r1,"一号线程").start();
2.使用lambda表达式(λ)进行函数式编程
Runnable r2 = () -> System.out.println(Thread.currentThread().getName());
new Thread(r2,"二号线程").start();
3.使用lambda表达式(λ)进行函数式编程-进一步简化程序,一行代码搞定
new Thread(() -> System.out.println(Thread.currentThread().getName()),"三号线程").start();
以上是关于JAVA——进阶语法——使用lambda表达式(λ)进行函数式编程,对匿名内部内代码简化思路及案例在线程中的应用的主要内容,如果未能解决你的问题,请参考以下文章