如何在Android Studio中启用"替换方法引用"重构(和Java 8功能)

cui*_*uac 2 java android intellij-idea java-8 android-studio

IntelliJ可以重构这个:

class Foo {
    static void bar() {}
    static {
        new Runnable() {
            @Override
            public void run() {
                Foo.bar();
            }
        }.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

进入:

class Foo {
    static void bar() {}
    static {
        ((Runnable) Foo::bar).run();
    }
}
Run Code Online (Sandbox Code Playgroud)

不是更好吗?(感谢Anna Kozlova).现在Android支持Java 8,我该如何在Android Studio中执行此操作?

小智 5

你需要做几件事.

首先你需要使用JDK 1.8(太棒了,不是吗?)

第二个条件是在build.gradle文件中将你的targetSdkVersion和设置compileSdkVersion为23 .

然后,你需要通过在加入启用Java 8层的功能defaultConfig您的的build.gradle文件

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

您还需要通过将以下行添加到build.gradle文件的同一部分来启用Jack工具链:

jackOptions {
    enabled true
}
Run Code Online (Sandbox Code Playgroud)

最后,您还需要buildToolsVersion设置为24及以上才能构建项目.

然后,您可以在Android Studio中享受完整的Java 8功能和相关的重构建议.

您可以在文档中阅读有关Java 8功能和Android的更多信息.