编程思想转换&体验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();
    }

 

posted @ 2022-07-08 10:13  漁夫  阅读(31)  评论(0)    收藏  举报