代表匿名内部类的androidstudio

代表匿名内部类的androidstudio,android,android-studio,Android,Android Studio,我在AndroidStudio 0.3.6中创建了一个全新的Android应用程序,其中包含一个为我创建的LoginActivity.java。当我查看onCreate函数时,我会看到以下代码: 但是当我点击突出显示的(视图)->{code Android Studio显示我希望看到的内容: findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener() { @Override pu

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

但是当我点击突出显示的
(视图)->{
code Android Studio显示我希望看到的内容:

findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        attemptLogin();
    }
});
我的问题

  • 这叫什么
  • 为什么Android Studio会这样做
  • 这是我可以利用的东西,因为它少了很多打字

  • 它做的代码折叠类似于Java8Lambda表达式(请参阅),即使您的代码实际上不是用Java8编译的;这只是为了方便更紧凑的显示


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

    实际上这是Java 8的功能,具体来说,不是吗下面是代码折叠下的一个设置,名为“闭包(实现一种方法的匿名类)”,您可以启用或禁用该设置。您也可以分别使用ctrl-alt-/+手动折叠/展开。不幸的是,我不知道您在何处实际键入速记版本以及自动生成完整代码,相反。