如果您使用的是Android Studio,那么Java 7 language应该在没有任何补丁的情况下自动启用.试用资源需要API级别19+,缺少NIO 2.0.
如果您不能使用Java7功能,请参阅@Nuno关于如何编辑build.gradle
的答案.
以下内容仅供历史参考.
Java7的一小部分当然可以在Android上使用(注意:我只在4.1上测试过).
首先,您不能使用Eclipse的ADT,因为只有Java编译器1.5和1.6是兼容的.你可以重新编译ADT,但我发现除了重新编译整个Android之外,没有简单的方法可以做到这一点.
但是您不需要使用Eclipse.例如,Android Studio 0.3.2、IntelliJ IDEA CE和其他基于javac的IDE支持编译为Android和,您甚至可以通过以下方式将兼容性设置为Java 8:
这只允许Java7language features,您几乎不能从任何东西中获益,因为一半的改进也来自于库.您可以使用的功能是那些不依赖于库的功能:
<>
)catch (Exc1 | Exc2 e)
)1_234_567
)0b1110111
)这些功能不能用于yet:
try
-WITH-RESOURCES语句-因为它需要不存在的接口"java.lang.AutoCloseable"(可以在4.4+中公开使用)... "然而":)事实证明,尽管Android的库的目标是1.6,但Android源代码确实包含像AutoCloseable这样的接口,而像Closeable这样的传统接口确实继承自AutoCloseable(尽管SafeVarargs确实缺失).我们可以通过反思来确认它的存在.它们之所以被隐藏,仅仅是因为Javadoc有@hide
标签,这导致"android.jar"不包含它们.
关于如何恢复这些方法,目前已经存在一些问题.您只需将当前平台的现有"android.jar"引用与我们定制的引用结合起来,就可以使用许多Java 7 API(该过程与Eclipse中的过程类似.请判断项目 struct )→ SDK.)
除了AutoCloseable之外,(仅)还显示了以下Java 7 library features:
基本上就这些.特别是,NIO 2.0不存在,并且没有array.asList仍然不是@SafeVarargs.