5

我真的很喜欢 Android Studio 的匿名类代码折叠:

new AsyncTask<Void, Void, Void>() {
    @Override
    protected Void doInBackground(Void... params) {
        doSomething();
        return null;
    }
}.execute();

进入

(AsyncTask) (params) -> {
    doSomething()
}.execute();

此折叠选项位于设置中的“关闭”下。因为我想使用 lambda 表达式,所以我切换到 Java 8(使用 retrolambda),但是现在 Android Studio 不折叠匿名类。有没有办法重新启用它?

PS 我知道我可以留在 Java 7,Android Studio 会将单方法匿名类折叠成 lambda 表达式,但我希望能够直接输入 lambda 表达式,同时仍然折叠多方法匿名类。

4

1 回答 1

0

首先,您需要在项目结构 -> SDK 位置下将 JDK 位置设置为 java 8

目前 Android Studio 2.1 不支持 java 8 的 lambda 表示法,但有解决方法。

  1. 您需要启用 Jack 编译器才能支持此功能
  2. 在 build.gradle 文件中添加 android { jackOptions { enabled true } }
  3. 它还需要 Android Sdk Build-tools 24 或更高版本。在 sdk manager 下下载打开的独立 SDK manager 并下载
于 2016-05-01T10:59:06.297 回答