在以前版本中使用-source或-target指令时,您会丢失哪些Java功能?

时间:2014-08-18 20:59:22

标签: java javac

所以我知道javac可以带一个-source标志,它允许你指定它应该用来编译源代码的Java版本:

  • 如果您使用的是源1.7,则会丢失1.8中接口的lambdas,类型注释和默认方法。
  • 如果您使用的是源代码1.6,则会丢失<&gt ;,尝试使用资源,以及从1.7开始进行多播。
  • 如果您使用的是源1.5,则会在接口中丢失@Override
  • 如果您使用的是源代码1.4,则会丢失泛型,自动装箱,for / in,varargs和枚举。
  • 如果使用源1.3,则会丢失断言。

但它还需要一个-target标志,允许您生成针对特定JVM版本的字节码。我有兴趣看到上面列出的每个版本中添加的功能列表,以便我可以做出明智的决定,我想知道-target。例如,出于性能原因还是因为某些语言功能破坏,是否有一些版本背后不推荐我定位?

0 个答案:

没有答案