AndroidStudio 配置java1.8 lambda

2017年底了做完总结,没有特别事情,将所有工具和插件以及三方的SDK都检查和更新了一遍。

java1.7也升级到了1.8 顺便配置一下新的特性lambda


有两种方式

配置流程:
defaultConfig { ..
// one
jackOptions {
enabled true
}
//two
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}



不过在我升级AndroidStudio 3.0.1时 gradle 编译时提示警告

Warning:The Jack toolchain is deprecated and will not run. To enable support for Java 8 language features built into the plugin, remove 'jackOptions { ... }' from your build.gradle file, and add


android.compileOptions.sourceCompatibility 1.8
android.compileOptions.targetCompatibility 1.8


Future versions of the plugin will not support usage of 'jackOptions' in build.gradle.
To learn more, go to https://d.android.com/r/tools/java-8-support-message.html



只用

defaultConfig {

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 1.8中,可以使用lambda表达式将List转换为Map。具体实现方法如下: 首先,我们需要创建一个List对象: ```java List<String> list = new ArrayList<>(); list.add("apple"); list.add("orange"); list.add("banana"); ``` 然后,我们可以使用lambda表达式将List转换为Map: ```java Map<String, Integer> map = list.stream() .collect(Collectors.toMap(Function.identity(), String::length)); ``` 这行代码的意思是将List中的元素作为Map的key,将元素的长度作为Map的value。其中,`Function.identity()`表示将元素本身作为key,`String::length`表示将元素的长度作为value。 我们也可以使用lambda表达式将List中的元素转换为自定义的对象,并将其作为Map的value: ```java List<Person> list = new ArrayList<>(); list.add(new Person("Tom", 20)); list.add(new Person("Jerry", 30)); list.add(new Person("Kate", 25)); Map<String, Integer> map = list.stream() .collect(Collectors.toMap(Person::getName, Person::getAge)); ``` 这行代码的意思是将List中的Person对象的name作为Map的key,将age作为Map的value。 注意,如果List中有重复的元素作为key,那么会抛出`java.lang.IllegalStateException`异常。此时,我们可以使用第三个参数来指定如何解决冲突,例如: ```java Map<String, Integer> map = list.stream() .collect(Collectors.toMap(Person::getName, Person::getAge, (a, b) -> a)); ``` 这行代码的意思是,如果出现重复的key,那么保留第一个key对应的value,忽略后面的value。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值