一、什么是Lambda表达式
Lambda表达式是Java 8引入的一种表达式,lambda表达式允许你通过表达式来代替功能接口,让代码变的简单、而且可读、最重要的是代码量的减少。
代表符号:->。
读音:ˈlæmdə'
二、Lambda表达式在android开发中的的使用
1.在给控件设置监听##
没有使用Lambda的老方法:
ImageView iv = (ImageView)findViewById(R.id.imageView);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("没有使用lambda");
}
});
使用Lambda:
ImageView iv = (ImageView)findViewById(R.id.imageView);
iv.setOnClickListener(v -> System.out.println("使用lambda"));
2.创建新的线程##
没有使用Lambda的老方法:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("没有使用lambda");
}
});
使用Lambda:
Thread thread = new Thread(() -> System.out.println("使用lambda"));
这只是我们最经常用到的两种情况。
3.怎么修改现有项目##
在可以修改位置按下alt+enter键(可以修改位置是成灰色)
2017-03-07_173351.png
三、Lambda表达式引入Android studio#
1.下载jdk8并配置好环境变量。##
2.AndroidStudio2.1.1之前版本导入##
1.Modle的build.gradle里添加
apply plugin: 'me.tatarka.retrolambda'
android{
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
2.Project的build.gradle里添加
buildscript {
repositories {
mavenCentral()
maven {
url "http://maven.oschina.net/content/groups/public"
}
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:2.5.0'
}
}
3.编译完成。
3.AndroidStudio2.1.1之后版本导入(同时更新SDK至最新)##
Modle的build.gradle里添加
android {
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
编译完成。
4.打包项目时报错:编码GBK不可映射字符##
2017-03-08_212727.png需要在Modle的build.gradle里添加
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
结束。
网友评论