在Java 1.6中弃用

在Java 1.5中,要弃用方法,您将:

@Deprecated int foo(int bar) { } 

在Java 1.6中进行编译会导致以下结果:

语法错误,注释仅在源级别为1.5时可用

有任何想法吗?

你必须告诉编译器使用1.6:

 javac -source 1.6 

或等效的IDE /构建系统(正如其他人建议的那样)。

首先,它是@Deprecated ,第二次 – 仔细检查你是否真的在使用Java 1.6进行编译。 你在用什么? javac的? 日食?

如果使用javac,请确保将JAVA_HOME设置为指向JDK 6而不是JDK 1.4.2如果使用Eclipse(或任何IDE),请右键单击项目>属性>并搜索编译器级别。

语法错误,注释仅在源级别为1.5时可用

这是典型的IDE错误消息。 您已将工作区或项目配置为使用1.4或更高级别的合规性级别。 假设它是Eclipse(它至少可以识别为Eclipse错误),那么您需要在工作区首选项中转到Java > Compiler并将Compiler compliance level设置为1.5或更高版本。 您还需要在Project的属性中的Java Compiler条目中进行检查。

如果您正在使用Eclipse IDE

1-在Project Explorer中选择项目

2-转到项目 – >属性 – > Java编译器

3-选中“启用项目特定设置”选项

4-将“编译器合规性级别”设置为“1.6”

注意:如果已设置为1.6,则将其更改为1.5。

5-按“应用”按钮。

IDE存在问题,有时它不会选择默认的选定编译器合规性级别。 因此,您必须切换它并按应用按钮才能使更改生效。

阅读了迄今为止的回复,我可以看到,在涉及Eclipse的地方发生了一些混乱。

我有相同的语法错误,检查工作区Java兼容性( 窗口>首选项> Java>编译器 ),并惊讶地看到编译器合规性级别为1.6。 但是 ,我注意到此首选项页面顶部的“配置项目特定设置”链接。 该链接将您带到项目自己的设置。

您也可以从主菜单导航到那里。 在本例中, Project> Properties> Java Compiler 。 有一个标记为启用项目设置的复选框,在我的情况下,这已被选中,设置为1.4,但我不记得明确设置它。 无论如何,您可以将合规性设置默认为工作台的设置或将项目设置更改为1.5或更高。

这应该修复语法错误。

我怀疑你的源级别设置低于 1.5。 一般来说,它在Java 6中应该没问题。

你是如何编译的? 如果是Eclipse,那么您的项目/工作区设置在Compiler / JDK合规性级别下会说什么?

如果您正在使用javac,请运行

 javac -version 

检查你真正使用的版本。

您确定要使用Java 1.6而不是1.4(或更早版本)进行编译吗? 你用的是什么编译器?

@Deprecated不是@Deprecate

如果您使用的是Eclipse,请确保将Java Compiler的设置设置为1.6合规性。

即使在Eclipse中使用java 1.6,也会发生这种情况。 单击项目,然后右键单击它。 转到属性并在Java编译器部分首先检查启用项目特定,然后手动选择1.6版本,即使它已经默认存在。 这解决了我的问题。