我需要将一些代码与
Java lambda函数的广泛使用进行整合.
我要求我使用 Eclipse Mars开发我的项目,使用最新的ADT插件,而不是 Android Studio.
我要求我使用 Eclipse Mars开发我的项目,使用最新的ADT插件,而不是 Android Studio.
问题是使用Lambda功能需要使用1.8 JDK兼容性,但是如果设置为这样,我会收到以下消息:
Android requires compiler compliance level 5.0 or 6.0. Found '1.8' instead.
两人如何和睦相处?
编辑:
这不是建议的问题的一个重复,因为我在问ADT Eclipse,而且自从上次更新在这个问题,Android确实支持Java 8,所以不只是这不是重复的,但这个问题现在(之后)最后更新后1.5年)已过时.
解决方法
正如@dhke所说,Android上还没有对Java 8的支持.
使用Java 8,Build for Java 6/7
但您仍然可以使用JDK 8开发Android应用程序.您只需要将源兼容性设置为6或7,这取决于您的minSDKVersion.因此,您将丢失Java 8中引入的任何新功能,如您的情况下的lambda.
Lamda的后台
由于您广泛使用lambda,所以Retrolambda可能是您的选择.它为前Java 8版本提供了lambda的后缀.它有Maven / Gradle /命令行插件来支持.
其他后端口
如果您需要其他Java 8功能,AFAIK,ThreeTen ABP可为Java 8 Date Time API提供后台支持.