编程思想转换&体验Lambda的更优写法和Lambda标准格式
编程思想转换&体验Lambda的更优写法
我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做的事情是︰
将run方法体内的l弋码传递给Thread类知晓。
传递一段代码——这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方式。
那有没有更加简单的办法?如果我们将关注点从"怎么做"回归到"做什么"的本质上,就会发现只要能够更好地达到目的,过程与形式其实并不重要。
public static void main(String[] args) { //简化代码 new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+"新的线程创建了"); } }).start(); //使用Lambda方式实现多线程 new Thread(()->{ System.out.println(Thread.currentThread().getName()+"新的线程创建了"); } ).start(); }
public static void main(String[] args) { // 匿名内部类 Runnable task = new Runnable() { @Override public void run() { // 覆盖重写抽象方法 System.out.println("多线程任务执行!"); } }; new Thread(task).start(); // 启动线程 //使用Lambda方式实现多线程 new Thread(() -> System.out.println("多线程任务执行!")).start(); // 启动线程 } }
Lambda标准格式
Lambda表达式的标准格式:
由三部分组成
a.—些参数
b.一个箭头
c.一段代码格式:
(参数列表)->{一些重写方法的代码}
解释说明格式:
():接口中抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔
->:传递的意思,把参数传递给方法体{}
{}:重写接口的抽象方法的方法体
public static void main(String[] args) { //简化代码 new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+"新的线程创建了"); } }).start(); //使用Lambda方式实现多线程 new Thread(()->{ System.out.println(Thread.currentThread().getName()+"新的线程创建了"); } ).start(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix