Комментарии 12
Прикольно. Может кто уже попробовал, как оно?
Вах, круто. Надо испытать на dalvik vm — будет ли работать… Очень вкусно выглядит.
Ну если оно шаманит с байткодом — то работать скорее всего не будет. Но проверить все же надо. Может манипуляции с байткодом выполняются на стороне JVM, до конвертации в байткод dalvik.
Виии, работает!
public class Test {
public static void main(String[] args) {
System.out.println("=== Runnable test on Dalvik VM ===");
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("First runnable");
}
};
Runnable r2 = () -> { System.out.println("Second runnable"); };
r1.run(); r2.run();
}
}
javac Test.java
java -Dretrolambda.inputDir=. -Dretrolambda.classpath=. -Dretrolambda.bytecodeVersion=50 -javaagent:retrolambda.jar -jar retrolambda.jar
zip package.jar *.class
java -jar /opt/android-sdk/build-tools/17.0.0/lib/dx.jar --dex --output=package-dx.jar package.jar
adb push package-dx.jar /sdcard/package-dx.jar
adb shell
su -c ash
dalvikvm -classpath /sdcard/package-dx.jar Test
Чего только не придумают, лишь бы на Scala не писать.
Странное желание использовать стабильный JRE и нестабильную библиотеку. Lambda до сих пор в бете.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Лямбда-выражения бэкпортированы в Java 7, 6 и 5