Document

Lombda表达式

Lambda

Lambda表达式就是简写了函数式接口(函数式接口有且只有一个抽象函数)

测试代码

按照原来的方式我们都是线实现接口,重写方法,再进行实例化调用

// 接口
public interface WxUtil {
     int jiec(int s);
}
// 接口实现类
public class WxUtilImpl implements WxUtil{
    @Override
    public int jiec(int s) {
        return s*s;
    }
}
// 测试类
public class lam01 {
    public static void main(String[] args) {
        WxUtil ws = new WxUtilImpl();
        System.out.println(ws.jiec(9));// 81
    }
}

然后我们再使用Lambda和接口实现方法进行对比,都没有使用实现类

接口实现方法

// 接口
public interface WxUtil {
     int jiec(int s);
}
// 测试类
public class lam01 {
    WxUtil ws = new WxUtil(){
          @Override
          public int jiec(int s) {
              return s*s;
          }
      };
    System.out.println(ws.jiec(9));// 81 
    }
}

查看编译文件

image-20220928102240384

发现会出现一个内部匿名类

Lambda表达式

// 测试接口
public interface WxUtil {
     int jiec(int s);
}
// 测试类
public class lam01 {
    public static void main(String[] args) {
        WxUtil ws = s -> s*s;
        System.out.println(ws.jiec(9));// 81
    }
}

查看编译文件

image-20220928102605670

使用Lambda表达式就不会出现内部匿名

使用Lambda表达式要求接口必须是函数式接口

由此我们可以判断

  • 再使用情况下多的时候使用传统的实现类
  • 不多的情况下使用lambda表达式
  • 不建议使用接口内部类
posted @ 2022-09-28 21:53  一蓑烟雨任平生。。  阅读(38)  评论(0)    收藏  举报
Document