首页 > 其他分享 >Lombda表达式

Lombda表达式

时间:2022-09-28 22:00:30浏览次数:48  
标签:Lombda jiec int 接口 ws WxUtil public 表达式

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表达式
  • 不建议使用接口内部类

标签:Lombda,jiec,int,接口,ws,WxUtil,public,表达式
From: https://www.cnblogs.com/xhlin/p/16739713.html

相关文章

  • SpringEL表达式
    packagecom.yang.colademo.gatewayimpl;importorg.springframework.expression.EvaluationContext;importorg.springframework.expression.ExpressionParser;import......
  • 算数表达式求值 算数表达式字符串求值
    packagecom.bison.tracecode.utils;importcn.hutool.core.util.NumberUtil;importjava.math.RoundingMode;importjava.util.Collections;importjava.util.Stack......
  • python-正则表达式re模块
    07、正则表达式学习正则表达式操作字符串re模块是用C语言写的没匹配速度非常快其中compile函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象,该对象拥有......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    #include<iostream>#include<string>#include<vector>intmain(){usingnamespacestd;strings1;//创建一个string对象strings2{"cplusplus"};//......
  • java8实战二:Lambda 表达式
    Lambda表达式前片文章讲到,使用匿名类来表示不同的行为并不令人满意:代码十分啰嗦,这会影响程序员在实践中使用行为参数化的积极性。在本章中,我们会教给你Java8中解决这个......
  • .NET教程 - 字符串 & 编码 & 正则表达式(String & Encoding & Regular Express)
    更新记录转载请注明出处:2022年9月28日发布。2022年9月28日从笔记迁移到博客。System.char说明singleUnicodecharacteraliasestheSystem.Charstructcharc......
  • Swift 范围表达式
    Swift范围表达式不同类型的范围运算符一个**范围**是两个数值区间之间的一系列值。Range实例可以使用**范围运算符**.Swift包含几个范围运算符,它们是表示值......
  • spel 表达式语言 注入
    /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里给大家......
  • 函数声明和函数表达式声明的区别
    函数声明:sum();//10functionsum(){console.log(10)}表达式声明   s();//报错sisnotafunction   vars=function(){console.log(20)}在预解析的过......
  • 身份证号、手机号、邮箱正则表达式
    邮箱验证:varregEmail=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;手机号验证:varregMobile=/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18......