eclipse中的源兼容性与编译器合规性级别有什么区别。
当我将编译器符合性级别设置为1.5时,我得到"必须覆盖超类方法"由于使用@Override而导致错误,但在1.5中添加了@Override。
要解决此问题,我将编译器合规性级别更改为1.6,然后我就不会出现上述错误。请注意,我仍然有1.5套源兼容性。
我想知道两者之间的差异以及我们需要在eclipse中使用上述设置的情况(或场景)。
由于
答案 0 :(得分:0)
来源兼容性:
此设置应用于选择用户打算使用语言功能的java版本。例如:将其设置为1.7意味着用户可以在开关,菱形构造等中使用字符串,但将其设置为1.6将意味着用户不能使用这种仅限1.7的语言功能。 对于JDT编译器本身,我们使用1.4的合规性。是的,你说的很老套,但这是一个有意识的选择,让人们可以使用JDT编译器,即使他们的机器上没有安装高于1.4的java版本。您还可以根据需要为项目选择源设置。
编译器合规级别:
此设置是一种使JDT编译器符合标准的开关。某个Oracle javac版本。这是因为并非Oracle javac编译器中修复的所有错误都被反向移植到早期版本。因此,每个javac版本之间存在许多差异。甚至有一种情况,只有一个javac版本与其他javac版本在它之前和之后不同。因此,我们为用户提供了合规性设置,以便在JDT编译器中复制行为差异。这是为了让使用ECJ编译并使用javac(反之亦然)的人能够看到一致的错误(或缺少错误)。