我试图在RealmList循环中访问模型类的forEach。
尝试: 1
realmList.forEach(obj -> { System.out.println("value"+obj.getValue())});尝试: 2
realmList.forEach((ModelClass obj) -> { System.out.println("value"+obj.getValue())});在两次尝试中我都犯了错误
java.lang.NoClassDefFoundError:activites.MainActivity$$Lambda$1
如何解决此错误?
发布于 2017-01-13 14:11:38
Retrolambda只是提供Java 8的语法,而不是API。因此,仅使用Retrolambda就无法获得新的日期和时间API、Streams API等。如果您想在Android中使用新的Java8API,那么除了Retrolambda之外,还必须添加额外的库。非常好的Stream端口在https://github.com/aNNiMON/Lightweight-Stream-API上
此外,如果您想在Android中使用最新的Java8dataapi,可以使用以下端口:http://www.threeten.org/threetenbp/
编辑
我有一种印象,我以前的回答不是百分之百清楚。您现在的问题是要使用Java7中不可用的ArrayList.forEach方法,而Java7是在Android中使用的。Android会显示这样的完成情况,因为它认为您正在使用Jack编译器,并且这些API是可用的。但是您需要忽略这一点,使用Java8API中的一个端口或切换到Jack编译器,它允许您使用Java 8语法和API而不使用Retrolambda。
发布于 2017-01-13 15:26:57
List.forEach(是在JDK8中添加的方法。
Android 24 (在Android7.0中)有JDK8,下面的任何东西都没有JDK8。
因此,您需要使用兼容性库,而不是JDK8方法,比如这一个。
https://stackoverflow.com/questions/41635237
复制相似问题