文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

lambda 的入门详解

2023-06-02 10:43

关注

  1.为什么用lambda

  简化我们的操作

  举个例子

  创建一个线程

  new Thread(new Runnable() {

  @Override

  public void run() {

  System.out.println("hh");

  }

  }).start();

  以前我们快速创建一个线程要这样

  现在用lambda

  new Thread(()-> System.out.println("lambda-->hh")).start();

  一个更重要的原因是Java 以后为了更好的函数式编程

  2.lambda怎么用

  2.1 lambda的使用场景

  lambda只能用在函数式接口,函数式接口就是一个接口里面只有一个抽象方法

  * @author Arthur van Hoff

  * @see java.lang.Thread

  * @see java.util.concurrent.Callable

  * @since JDK1.0

  */

  @FunctionalInterface

  public interface Runnable {

  

  public abstract void run();

  }

  可以通过@FunctionalInterface来表示是一个函数式接口

  Java 为我们创建了很多常用的函数式接口,不用我们一个一个来创建

  四大内置函数式接口

  Consumer< T > 消费性 接口: void accept(T t);

  Supplier< T > 供给型接口 : T get();

  Function< T , R > 函数式接口 : R apply (T t);

  Predicate< T > 断言形接口 : boolean test(T t);

  2.2 使用

  (参数)->{方法体}

  new Thread(()-> { System.out.println("lambda-->hh");}).start();

  其实到这就可以熟练的用lambda,但是它还能简化,你说气不气=。=

  1.一个参数时可省略()

  Consumer consumer = x -> System.out.println(x);

  consumer.accept("1个参数省略()");

  2.方法体只有一条语句省略{}

  == 不管它是否需要有返回值==

  Function function= x-> x;

  Integer apply = function.apply(1);

  System.out.println(apply);

  3.类型推断

  lambda 表达式的参数类型可省略不写

  聪明的你肯定发现了为什么参数 不需要写类型,为什么不需要,Java会根据泛型来推断

  你也可以指定参数的类型,但是没必要

  Consumer consumer = (String x) -> System.out.println(x);

  3.方法引用

  System.out.println("呼呦呦");

  public void println(String x) {

  synchronized (this) {

  print(x);

  newLine();

  }郑州人流医院哪家好 http://mobile.zhongyuan120.com/

  }

  println是一个参数没有返回

  这和Consumer 消费者接口很符合啊,下面这样写可不可以简化啊(就nm事多)

  Consumer consumer = x -> System.out.println(x);

  简化版

  Consumer consumer1 = System.out::println;

  方法引用 参数与返回值需要一致

  

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯