Android Studio 配置 JDK1.8 使用Lambda表达式

Android Studio 配置 JDK1.8 使用Lambda表达式

JDK1.8 添加几项新特性譬如对集合的优化语法的便捷配合Lambda表达式使用可以让代码更加简便美观,但对于一些没有接触Lambda表达式的同学们来说就难于理解代码里的意向和调试。因为Android SDK目前还没有支持JDK1.8 所以有些新特性都是用不上
案例1:

List<String> names = Arrays.asList("FX", "Zing", "Hk");
        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String a, String b) {
                return b.compareTo(a);
            }
        });
        //forEach这个方法也是JDK1.8里有的,后面就Lambda表达式 ->左边是参数,->右边是执行方法体。
        names.forEach(name->System.out.println(name));
        //注意 因为Android SDK还没有支持JDK1.8 所以没有forEach这个方法。但可以使用Lambda表达式。那是因为我们通过RetroLambda插件将Java8中的代码编译产生的字节码转换成Java7字节码。

现在我们把Android Studio 的SDK 换成JDK8
1.打开 File->Setings 搜索closure 把它钩上。
这里写图片描述Android Studio 配置 JDK1.8 使用Lambda表达式_第1张图片
这里写图片描述

2.打开 Project Structure 快捷键:Ctrl+Shift+alt+s
3.选择SDK location 配置JDK1.8
这里写图片描述

4.点击Modules 里面的项目,都选择1.8如果下拉没有,就直接输入1.8
这里写图片描述

好的现在我们的环境都已经配置好,重新运行下项目发现报错了

Java\jdk1.8.0_65\bin\java.exe” finished with non-zero exit value 1

然后就上百度Google各种搜发现说要加大JAVA运行内存,都得不到解决。

把这些代码放在你项目的build里试试,重新Gradle 项目,但是构建是会有点慢是因为这个插件是用Maven下载下来的。

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.4'
    }
}
// Required because retrolambda is on maven central
repositories {
    mavenCentral()
}

apply plugin: 'com.android.application' //or apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'

好了,现在基本都可以正常了,如果有错尝试把CLASSPATH配置上



具体可以参考:https://github.com/evant/gradle-retrolambda
如果是Eclipse 直接在Eclipse MarketPlace 搜索Java 8 安装下面插件。
Android Studio 配置 JDK1.8 使用Lambda表达式_第2张图片

你可能感兴趣的:(android)