转载请注明出处:http://blog.csdn.net/yudbl/article/details/78603669
最近用到lambda语法,所以博客记录总结下。配置Retrolambda插件来使用lambda语法
Java8比较大的一个变化是加入了Lambda表达式,一种紧凑的,传递行为的方式。它可以使你的代码更简洁、逻辑更清晰。特别是用Rxjava的时候,将各种数据变换使用Lambda表达式来简化,可以最大化的减少样板代码,使整个数据流的处理逻辑十分清晰。
retrolambda又是什么呢?它是 Java 5/6/7 中对Java8 Lambda 表达式的非官方兼容方案。因为目前Android的所有版本(除了N Preview),都还不支持java8。
gitHub地址:https://github.com/orfjackal/retrolambda
我的demo源码地址:http://download.csdn.net/download/yudbl/10129737
1、需安装Jdk1.8
查看已安装的jdk版本方法如下:
2、AS相关文件进行修改配置
在Android Studio需要对以下文件进行修改:
(1)build.gradle (Project )
在buildscript->dependencies中添加:
classpath 'me.tatarka:gradle-retrolambda:3.6.0'
- 1
注意: 如果com.android.tools.build:gradle:2.2.0为2.2以上的对应的me.tatarka:gradle-retrolambda:3.6.0 必须为3.3.0以上
以下是整个build.gradle (Project )文件:
( 2 )build.gradle (module )
在最外面添加:
apply plugin: 'me.tatarka.retrolambda'
retrolambda {
javaVersion JavaVersion.VERSION_1_6
}
- 1
- 2
- 3
- 4
- 5
在android{}里面添加:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
- 1
- 2
- 3
- 4
如以下build.gradle (module ):
(3)proguard-rules.pro
在 proguard-rules.pro (ProGuard Rules for app )中添加进行混淆处理:
-dontwarn java.lang.invoke.*
- 1
(4)在activity测试如下:
不配置Retrolambda插件,下面几行代码是会报错的
TextView textView_lambda = (TextView) findViewById(R.id.test);
textView_lambda.setOnClickListener(v ->
Toast.makeText(MainActivity.this,"测试lambda表达式!",Toast.LENGTH_SHORT).show()
);
参考:
http://blog.csdn.net/xx326664162/article/details/53946001