如何在android中使用lambda表達式? 例如,我在IntelliJ IDEA的編譯此代碼:Android中的Lambda表達式
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();
}
但是有這個erorrs:
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
如何設置,所以你可以使用lambda表達式?
的Android支持JAVA 6/7不是8我猜。在java 8中引入lambda我猜 – Raghunandan
是的,lambda是在java 8中引入的,但是如果已經有很多代碼用lambda表達式寫入,我該怎麼辦? – user3430722
@Raghunandan你錯了。如果您將您的build.gradle設置爲使用Java 8,Lambdas可以輕鬆在Android Studio中工作。 –