我知道 Java 7 的运行时特性不适用于 Java 6,但由于 没有添加新的字节码,新的字节码 invokedynamic
只与非 Java 语言相关,我想知道将 Java 7 源代码(新 switch
语句,菱形运算符)转换为纯 Java 6(即能够开始转换Java 7 的源代码,而不会失去 Java 6 的兼容性)。
任何指针?
最佳答案
据我所知,目前还没有解决这个问题的办法。最好的办法是延长 retrotranslator处理 Java 1.7 结构。菱形运算符应该非常简单,因为它根本不需要修改字节码。
您的陈述“没有添加新的字节码”是不正确的:有一个新的 invokedynamic 字节码,更重要的是,有几种情况生成的字节码对 1.6 JRE 无效,因此逆向翻译器必须修复那个。
关于java - 将 Java 7 编译为 Java 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7661980/