Android Studio代表匿名内部类

Joe*_*Joe 7 android android-studio

我在Android Studio 0.3.6中创建了一个全新的Android应用程序,其中包含为我创建的LoginActivity.java.当我查看该onCreate函数时,我看到以下代码:

在此输入图像描述

但是,当我点击突出显示的(view)-> {代码时,Android Studio会显示我希望看到的内容:

findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        attemptLogin();
    }
});
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. 这个叫什么?
  2. 为什么Android Studio会这样做?
  3. 这是我可以利用的东西,因为它更少打字?

Sco*_*rta 2

即使您的代码实际上不是用Java 8 编译的,它也会进行类似于Java 8 lambda 表达式的代码折叠(请参阅文档);这只是为了更紧凑的显示而提供的便利。

如果你想自己使用它们,你可以使用Android StudioJava 1.7作为编译语言,但你需要使用构建工具 v19 或更高版本,并且如果你使用某些语言功能,它只能在具有 Java 1.7 的手机上运行Kit Kat 或更高版本。不过, Lambda 函数不会给您带来麻烦。

  • 实际上这是java 8的特性 (6认同)