Android Studio中应用Lambda表达式

什么是Lambda表达式

Lambda表达式是Java SE 8中包含的一个新的重要功能。它们提供了一种清晰简明的方法来使用表达式表示一个方法接口。 Lambda表达式还改进了Collection库,使其更容易从集合中遍历,过滤和提取数据。此外,新的并发功能提高了多核环境中的性能。
  当然在Android工程中直接使用JDK 8编译向下兼容还是有问题,你可以通过 Retrolambda 让使用Lambda表达式的Java 8代码运行在Java 7或更低版本上,让Lambda不再专属于Java 8,提高工程师的逼格。

怎么应用到自己的项目中

  • 添加如下一段到到build.gradle中,具体看图。
compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8  
       targetCompatibility JavaVersion.VERSION_1_8
}
1981845-6f68488bfae4af45.png
Paste_Image.png
  • 把下面一段添加到Module中的 build.gradle中,具体看图。
apply plugin: 'me.tatarka.retrolambda'
1981845-6edabbd9f22fb4c3.png
Paste_Image.png
  • 把下面一段添加到整个工程的build.gradle中,具体看图。
classpath 'me.tatarka:gradle-retrolambda:3.2.0'
1981845-a174c2ff2728c9a9.png
整个工程的build.gradle中
  • 这样就可以使用Lambda表达式写代码了。

Lambda表达式的使用

代码对比

button.setOnClickListener(new View.OnClickListener() { 
      @Override 
       public void onClick(View v) {
           v.setText("lalala");
       } 
});//原来我们写法
//用Lambda表达式写法
button.setOnClickListener(v -> v.setText("lalala"));

Lambda表达式的例子

(int x, int y) -> x + y                      //接收x和y两个整形参数并返回他们的和
() -> 66                                     //不接收任何参数直接返回66
(String name) -> {System.out.println(name);} //接收一个字符串然后打印出来
(View view) -> {view.setText("lalala");}     //接收一个View对象并调用setText方法

方法引用

class User{
    private String userName;
    public String getUserName() {
        return userName;
    }
    ...
}
 
List<User> users = new ArrayList<>();
Comparator<User> comparator = Comparator.comparing(u -> u.getUserName());
Collections.sort(users, comparator);
 
//我们可以用方法引用替换上面的lambda表达式
Comparator<User> comparator = Comparator.comparing(User::getUserName);
参考资料:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值