草庐IT

override-equivalence

全部标签

Java 7 但不是 Java 6 : "is not abstract and does not override abstract method"

谁能解释为什么这在JDK1.6中编译,但在JDK1.7中却没有,我从中得到了错误消息:java:ExampleisnotabstractanddoesnotoverrideabstractmethodcompareTo(java.lang.Object)injava.lang.Comparable?importjava.util.concurrent.*;publicclassExampleimplementsScheduledFuture{@OverridepubliclonggetDelay(TimeUnitunit){return0;}@Overridepublicintcomp

java - 接口(interface)实现的@Override 注解出错

我正在使用JRE1.6版本,并意识到在将@Override与接口(interface)一起使用时出现JRE1.5问题。我导入了一个新项目(Spring+Maven)和Eclipse,只要任何接口(interface)方法被覆盖,Eclipse就会在每个@Override注释上给出错误。到目前为止我尝试过的事情检查项目和工作区特定的JRE和合规级别,它设置为1.6版本。检查了构建路径上的JRE库,它也是一样的。将项目方面的Java版本更改为1.6(不知道是否有帮助)Maven是否清理和安装(到现在已经数百次)注释的禁用错误/警告仍然不成功Eclipse重新启动(愚蠢的事情但帮了我很多时间

Java - 枚举 valueOf "override"命名约定

假设您有以下枚举:publicenumColor{RED("R"),GREEN("G"),BLUE("B");privateStringshortName;privateColor(StringshortName){this.shortName=shortName;}publicstaticColorgetColorByName(StringshortName){for(Colorcolor:Color.values()){if(color.shortName.equals(shortName)){returncolor;}}thrownewIllegalArgumentExcepti

java - JDK 1.6 中的@override 注解

我正在使用JDK1.6。当我实现一个接口(interface)并在实现类中时,如果我在函数名称前给出@override,Eclipse会抛出一个编译错误。即根据Eclipse,下面的代码是错误的。publicclassSomeListenerimplementsServletContextListener{@OverridepublicvoidcontextDestroyed(ServletContextEventarg0){//code}/*otheroverriddenmethodshere*/}如果我删除@Override注释,那么代码可以正常编译。是不是意味着JDK1.6不再要

java - 如何静态检测丢失的@Override 注释?

在Java5和Java6之间,关于源自接口(interface)(相对于父类(superclass))的方法的@Override注释的规则发生了变化-在它们之前是不允许的,但在它们被允许之后。但是,javac不需要它们。某些IDE,如eclipse,可能会为此类缺失的覆盖生成错误或警告。我正在寻找可以检测缺失覆盖的任何类型的静态分析工具,因此我可以以编程方式报告/阻止它们。它似乎不像我所知道的任何大型软件,如findbugs等可以做到-可能是因为@Override仅具有源保留级别,因此不存在于这些工具运行的.class文件,以及checkstyle等源代码级工具不理解完整的类层次结构。

java - 我可以让 Java 5 忽略 @Override 错误吗?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhydoesEclipsecomplainabout@Overrideoninterfacemethods?我有一些Java代码是使用Eclipse和Java6SDK编写的,因此实现接口(interface)的方法用@Override进行注释-这种注释在Java6中是合法的,但在Java5。我想使用Java5SDK(MacOSX10.5上的javac)编译相同的代码。除@Override注释外,一切都可以正常编译和运行。有什么方法可以让javac忽略此项目的@Override注释,或者是将它们全部删除的唯一

java - @override 注解

谁能告诉我这段代码是否:publicclassOvTester{@OverridepublicinthashCode(){returntoString().hashCode();}}确定OvTester类中的toString方法覆盖其父类(superclass)中的toString方法。我想知道这是否属实,如果属实,它是如何运作的?如果这不是真的,那么这是真的吗:“OvTester中的hashCode()方法必须覆盖其父类(superclass)中的同名方法”?如果那不正确,那什么是正确的? 最佳答案 当您在子类中重新定义具有相同签

c++ - 如何将 override 关键字添加到大型 C++ 代码库?

我有一个包含数千个源文件的大型C++代码库。我想在适当的地方添加override关键字。我的一些明显被覆盖的函数实际上并没有覆盖基类中的任何函数,我想捕获这些或至少让它们脱颖而出。我尝试手动执行,但代码库太大。我尝试使用clang-modernize,但它没有提供有用的说明。我还担心它无法理解为VisualStudio编写的代码库。如何在不花费人工周或更多时间的情况下将override关键字添加到我的代码库中? 最佳答案 似乎clang-modernize已经进入了clang-tidy这支持这一点。示例代码(test.cpp):st

c++ - 带有尾随返回类型的 final、override、const 的语法

我正在尝试覆盖虚拟,但也使用关键字override、final和const,以及尾随返回类型。问题似乎出在派生类中,编译器错误(说我没有指定尾随返回类型)并没有太大帮助。代码在这里:https://wandbox.org/permlink/zh3hD4Ukgrg6txyE也贴在下面。我玩过不同的顺序,但似乎仍然无法正确处理。任何帮助将不胜感激,谢谢。#includeusingstd::cout;usingstd::endl;usingstd::ostream;////////////////////////////////////////////////BasestuffclassBa

c++ - 为什么 GCC 给我一个错误 : no unique final overrider?

在下面的代码中,我收到以下警告和错误:test.cpp:15:warning:directbase'B'inaccessiblein'D'duetoambiguitytest.cpp:15:error:nouniquefinaloverriderfor'virtualvoidA::f()'in'D'但是如果我从A中移除B的虚拟继承(即structB:publicA),我只会得到警告,没有错误。structA{virtualvoidf()=0;};structB:publicvirtualA{voidf(){}};classC:publicB{};structD:publicC,virt