Jak używać wyrażeń lambda w Androidzie? Na przykład, mogę skompilować ten kod w IntelliJ IDEA:Wyrażenia lambdy w Androidzie
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();
}
Ale ma to 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
Jak skonfigurować tak można użyć wyrażenia lambda?
Android obsługuje java 6/7 nie 8 myślę. lambda jest wprowadzona w java 8 i tak – Raghunandan
tak, lambda jest wprowadzona w java 8, ale co mogę zrobić, jeśli jest już napisane dużo kodu z wyrażeniem lambda – user3430722
@Raghunandan Mylisz się. Lambdas działa z łatwością w Android Studio, jeśli ustawisz swój build.gradle na język Java 8. –