我怎样才能知道这个Java API发生了什么变化?

时间:2009-07-22 13:32:44

标签: java

在某些时候java.lang.Override开始可用于接口中声明的方法的实现。我很确定有一段时间它只适用于超类中定义的方法的覆盖。

如何找出此更改发生的时间(即哪个版本)?

3 个答案:

答案 0 :(得分:12)

对从接口实现但未从超类重写的方法使用@Override注释是Java 6中的一项新功能。请参阅@Override specification changes in Java 6

  

Java 5和Java 6之间的更改   @Override的规范有   已经成型。在Java 6中,它是可能的   将@Override注释添加到   实现方法的方法   Java中不允许的接口   5。

     

我注意到朋友的不同之处   告诉我,他必须删除所有的   @Override注释来制作他的Java   6用Java 5编译项目。

     

有趣的是,有   没有关于此更改的文档。   @Override的API规范是   在两个Java中完全相同   版本。我发现这是   被Sun开发者遗忘了。 Peter Ahé, a former developer at Sun, calls it the @Override Snafu

答案 1 :(得分:2)

我不知道你是怎么发现的,但它发生在5到6之间(即它在5中被禁止但在6中被接受。)

答案 2 :(得分:1)

您无法“正式”查找,因为someone at Sun messed up并且在更改实施时未更新java.lang.Override的API文档中的规范,并且显然在不允许发布后更改规范。