android中的Lambda表达式

use*_*722 7 lambda android intellij-idea

如何在android中使用lambda表达式?例如,我在IntelliJ IDEA中编译此代码:

package com.example.myapp;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        test s = () -> {return "Lambda expressions test";};
        AlertDialog alertDialog = new AlertDialog.Builder(this)
                .setTitle("Lambda expression")
                .setMessage(s.t())
                .create();
        alertDialog.show();
    }
}
interface test {
    public String t();
}
Run Code Online (Sandbox Code Playgroud)

但有这样的错误:

Information:Using javac 1.8.0_05 to compile java sources
Information:36 errors
Information:0 warnings
Information:Compilation completed with 36 errors and 0 warnings in 29 sec
Error:Android Dex: [myapp?] UNEXPECTED TOP-LEVEL EXCEPTION:
Error:Android Dex: [myapp?] com.android.dx.cf.iface.ParseException: InvokeDynamic not supported 
Run Code Online (Sandbox Code Playgroud)

如何设置以便您可以使用lambda表达式?

Pie*_*ces 7

Android仅支持java 6和7.您可以使用插件来获取lambdas,例如https://github.com/evant/gradle-retrolambda.