Lamda表达式

打印 上一主题 下一主题

主题 802|帖子 802|积分 2406

推导:  
 实现类->  静态内部类->   局部内部类 -> 匿名内部类 ->  Lamda表达式
  1. public class TestLambda1 {
复制代码
  1. --------<br><br>   //3.静态内部类
复制代码
  1. <em id="__mceDel">    static class Like2 implements ILike{
  2.         @Override
  3.         public void lambda() {
  4.             System.out.println("I like lambda2");
  5.         }
  6.     }
  7. --------
  8.     public static void main(String[] args) {
  9.         ILike like = new Like();
  10.         like.lambda();
  11.         like = new Like2();
  12.         like.lambda();
  13.         //4.局部内部类
  14.         class Like3 implements ILike{
  15.             @Override
  16.             public void lambda() {
  17.                 System.out.println("I like lambda3");
  18.             }
  19.         }
  20.         like = new Like3();
  21.         like.lambda();
  22.         //5.匿名内部类:没有类的名称,必须借助接口或父类
  23.         like = new ILike() {
  24.             @Override
  25.             public void lambda() {
  26.                 System.out.println("I like lambda4");
  27.             }
  28.         };
  29.         like.lambda();
  30.         //6.用lambda简化5,因为只有一个抽象方法,可以让他自己推导出来
  31.         like =()->{
  32.             System.out.println("I like lambda5");
  33.         };
  34.         like.lambda();
  35.     }
  36. }
  37. //1.定义一个函数式接口
  38. interface ILike{
  39.     void lambda();
  40. }
  41. //2.实现类
  42. class Like implements ILike{
  43.     @Override
  44.     public void lambda() {
  45.         System.out.println("I like lambda");
  46.     }
  47. }
  48. </em>
复制代码
  Lamda表达式的简化
  1. package lambda;
  2. //简化lambda表达式
  3. public class TestLambda2 {
  4.     public static void main(String[] args) {
  5.        ILove love = (int a)->{
  6.                 System.out.println("I love you-->"+a);
  7.             };
  8.         //简化1:去掉参数类型
  9.         love = (a)->{
  10.             System.out.println("I love you-->"+a);
  11.         };
  12.         //简化2:简化括号
  13.         love = a->{
  14.             System.out.println("I love you-->"+a);
  15.         };
  16.         //简化3:去掉花括号
  17.         love = a-> System.out.println("I love you-->"+a);
  18.         //总结:
  19.           //lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块(花括号)包裹。
  20.           //前提是接口为函数式接口(只能有一个方法)。
  21.           //多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号。
  22.         love.love(2);
  23.     }
  24. }
  25. interface ILove{
  26.     void love(int a);
  27. }
复制代码
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表