Android Studio中”Lambda表达式“使用方法及导入详解

一、什么是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并配置好环境变量。

jdk8下载地址

java环境配置—作者:烟花易冷JCL

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"
  }

结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值