温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用Java8中Lambda表达式

发布时间:2020-07-23 14:01:40 来源:亿速云 阅读:127 作者:小猪 栏目:开发技术

这篇文章主要讲解了怎么使用Java8中Lambda表达式,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

Lambda是什么

Lambda表达式,也可称为闭包,是java8的新特性,作用是取代大部分内部类,优化java代码结构,让代码变得更加简洁紧凑。

Lambda的基本语法

 (expression)->expression 或 (expression)->{statements;}

Lambda最重要特点

用()->{}代码块替代匿名内部类

//(param)->expression;//(param)->statment;//(param)->{statments};//类型声明
MathOperation addition = (int a, int b) -> a + b;
//不用类型声明
MathOperation subtraction = (a, b) -> a - b;

例如:用lambda表达式实现Runable接口

//java8之前
new Thread(new Runable() {
    @Override
    public void run() {
      System.out.println("hello");
    }
}).start();

//java8之后
new Thread( ()->System.out.println("hello") ).start();

代替comparator接口内部类

//java8之前
Comparator<Person> comparator = new Comparator(){
  public int compare(Person p1, Person p2) {
     if (p1.getAge() > p2.getAge())
      return -1;
     .....
  }
}

//java8之后
Comparator<Person> comparator = (Person p1, Person p2) -> {
  if (p1.getAge() > p2.getAge())
     return -1;
  .....
}

是不是代码变得清爽了许多

Lambda表达式和匿名类的对比

1、this关键字:匿名类的this关键字指向匿名类,而Lambda表达式的关键字指向包围Lambda表达式的类;

2、编译方式:Java编译器将Lambda表达式编译成类的私有方法,使用了java7的invokedynamic字节码指令来动态绑定这个方法;

最后说一句,Lambda表达式和Java8的新特性Stream()一起使用会更香哦!

看完上述内容,是不是对怎么使用Java8中Lambda表达式有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI