黑马程序员技术交流社区

标题: 【石家庄校区】学习总结<Lamcda> [打印本页]

作者: 金烁    时间: 2019-5-19 10:19
标题: 【石家庄校区】学习总结<Lamcda>
本帖最后由 小石姐姐 于 2019-5-23 16:36 编辑

.Lambda表达式
个人理解:
把一个编码过程尽量进行简化,但如果有了多条语句的时候,基本上能精简的特别少
启用线程例题是一个很好的例题
[Java] 纯文本查看 复制代码
//方式一的线程类
public class MyRunnable implements Runnable {

   @Override
   public void run() {
       System.out.println("多线程程序启动了");
   }
}

public class LambdaDemo {
   public static void main(String[] args) {
       //方式一
//        MyRunnable my = new MyRunnable();
//        Thread t = new Thread(my);
//        t.start();

       //方式二
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("多线程程序启动了");
//            }
//        }).start();

       //方式三
       new Thread( () -> {
           System.out.println("多线程程序启动了");
       } ).start();
   }
}

但很多时候还是用的不是很习惯,用惯了以前的繁琐式编码,用上了这个表达式,总觉得是缺胳膊掉腿
(其实还是很好用的......)
Lambda表达式的标准格式【理解】
1.3Lambda表达式练习1
[Java] 纯文本查看 复制代码
//接口
public interface Eatable {
   void eat();
}
//实现类
public class EatableImpl implements Eatable {
   @Override
   public void eat() {
       System.out.println("一天一苹果,医生远离我");
   }
}
//测试类
public class EatableDemo {
   public static void main(String[] args) {
       //在主方法中调用useEatable方法
       Eatable e = new EatableImpl();
       useEatable(e);

       //匿名内部类
       useEatable(new Eatable() {
           @Override
           public void eat() {
               System.out.println("一天一苹果,医生远离我");
           }
       });

       //Lambda表达式
       useEatable(() -> {
           System.out.println("一天一苹果,医生远离我");
       });
   }

   private static void useEatable(Eatable e) {
       e.eat();
   }
}


这次视频老师终于不拿林青霞举例子了,可是又跟苹果干上了..........



总得来说.Lambda表达式在很大程度上简化了程序的书写过程,不过精简的太过头有时候自己都有些看不懂,初学的小伙伴还是最好掌握这种方法






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2