`
AILIKES
  • 浏览: 178514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

@Override错误详解

阅读更多

一、java @override 报错处理

做项目的时候,同事那边电脑上编译通过的java代码,或者是网上下载的样例代码,导入工程后却是编译不通过,总是@override报错,把@override去掉就好了,有时候@Override出现的地方很多,要全部删除@Override很繁琐很吐血,不能从根本上解决问题。网上找了一下原因,才知道:

据说这是jdk的问题,@Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
首先要确保安装了jdk 1.6,
 
然后,在eclipse中修改配置,在 Windows->Preferences-->java->Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译下;
如果还是不行,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level中选择 1.6,刷新工程,重新编译下。
 
二、Android之@Override详解

Android的开发者对@Override肯定是非常熟悉,不管是自己的代码中还是书上都会出现,但是他是什么意思呢?如下:
  @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)
  example:

  在重写父类的onCreate时,在方法前面加上@Override系统可以帮你检查方法的正确性。例如:

  public  void  onCreate(BundlesavedInstanceState){…….}
  这种写法是正确的,如果你写成
  public  void  oncreate(BundlesavedInstanceState){…….}
  这样编译器会报如下错误——
  Themethodoncreate(Bundle)oftypeHelloWorldmustoverrideorimplementasupertypemethod,
  以确保你正确重写onCreate方法。(因为oncreate应该为onCreate)
  而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。

分享到:
评论

相关推荐

    RxJava2配置及使用详解

    RxJava2.0是一个非常棒的流式...//观察者模式,这里产生事件,事件产生后发送给接受者,但是一定要记得将事件的产生者和接收者捆绑在一起,否则会出现错误 Observable.create(new ObservableOnSubscribe() { @Override p

    详解C++成员函数的override和final说明符的用法

    override 说明符 可使用 override 关键字来指定在基类中重写虚函数的成员函数。 语法 ...编译器不会发出此代码的任何错误。 class BaseClass { virtual void funcA(); virtual void funcB() con

    Java中的final关键字详解及实例

    用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。 注:类的private方法会隐式地被指定为final方法。 public class ...

    java基础案例与开发详解案例源码全

    16.2.1 重写Override430 16.2.2 警告Deprecated431 16.2.3 抑制警告SuppressWarnings433 16.3 自定义注解类型433 16.4 对注解进行注解435 16.4.1 目标Target435 16.4.2 类型Retention436 16.4.3 文档Documented437 ...

    Linux depmod命令用法详解

    Linux depmod命令 Linux depmod命令用于分析可载入模块的相依性。 depmod(depend module)可检测模块的相依性,供...-s或–system-log 在系统记录中记录错误。 -v或–verbose 执行时显示详细的信息。 -V或–version

    osgEarth的121个案例详解

    17. datum_override.earth.....................................................................................................20 18. day_night_mp.earth.....................................................

    疯狂JAVA讲义

    1.6.3 初学者容易犯的错误 18 1.7 垃圾回收机制 20 1.8 何时开始使用IDE工具 21 学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 ...

    亮剑.NET深入体验与实战精要2

    2.4 sealed、new、virtual、abstract与override 87 2.5 abstract class与interface 91 2.6 公共变量与属性的区别 93 2.7 参数修饰符params、out和ref的区别 96 2.8 值类型和引用类型的区别 100 2.9 结构与类的区别 ...

    亮剑.NET深入体验与实战精要3

    2.4 sealed、new、virtual、abstract与override 87 2.5 abstract class与interface 91 2.6 公共变量与属性的区别 93 2.7 参数修饰符params、out和ref的区别 96 2.8 值类型和引用类型的区别 100 2.9 结构与类的区别 ...

    Ghost 8.3 系统备份软件

    Ghost 使用详解 -------------------------------------------------------------------------------- 一、分区备份  使用Ghost进行系统备份,有整个硬盘(Disk)和分区硬盘(Partition)两种方式。在菜单中...

    Ghost 8.3 Enterprise

    Ghost 使用详解  --------------------------------------------------------------------------------  一、分区备份  使用Ghost进行系统备份,有整个硬盘(Disk)和分区硬盘(Partition)两种方式。在菜单中...

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

Global site tag (gtag.js) - Google Analytics