关于@override报错的问题

问题描述

刚进公司,公司让看CXF,发现有很多annotation的标注,annotation注释是在jdk1.5加入的新东西,没用过,所以只能照着写了。在公司倒也没出错,公司的jdk是1.6的,把东西带回家后,在自己的电脑(jdk1.5)上一跑,报错了,是@override的错。费了半天劲才调好,原因如下:关于@override注释在jdk1.5环境下只能用于对继承的类的方法的重写,而不能用于对实现的接口中的方法的实现。例如:public interface Interface_A{ public void methodA();}public class parentClass_B{ public void methodB(){ }}public class test extends parentClass_B implements Interface_A{ @override //此处在jdk1.5中会报错,1.6中则不会 public void methodA(){ ............. } @override //此处不会报错 public void methodB(){ ............. }}就是这样,如果是针对接口的话(一般应该不需要的吧,多半是eclipse自作主张加上去的,呵呵),一定注意你的jdk版本是否正确。我是新人,所以不知道我的理解可正确,如有其他看法,欢迎指教。

解决方案

与这个无关,是你的 Eclipse 设置有问题,我以前也遇到过这个问题,在 Eclipse 设置里面有一个 JDK 兼容性问题的设置,你大概可以看一下。
解决方案二:
因为1.5认为实现接口的方法不是Override的,只有现实抽象类的抽象方法才是Override。
解决方案三:
我设置成了jdk6还是在接口上有@Override就报错,请问什么原因阿

时间: 2024-07-29 06:11:31

关于@override报错的问题的相关文章

@Override报错问题。

参考地址:http://blog.csdn.net/jjunjoe/article/details/6927148 解决方案: 原文描述: 有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多. 这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错.JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现

Java @override报错的解决方法

有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多. 这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错.JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override. 要解决该问题,首先要确保机器上安装了jdk 1.6, 然后,选择eclipse菜单Windows->Pref

android @override 报错解决方案_Android

现象: ... java: 1801: method does not override a method from its superclass @Override... 原因: Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 can be annotated with @Override, but in Java 1.5 can o

android @override 报错解决方案

现象: ... java: 1801: method does not override a method from its superclass @Override... 原因: Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 can be annotated with @Override, but in Java 1.5 can o

linux中挂载硬盘报错(you must specify the filesystem type)

  今天自己的虚拟机磁盘用完成,于是想加一磁盘,当挂载时发现报错you must specify the filesystem type.(注:我的系统环境是lcentos6.3装在virtualbox的虚拟机) 原来是因为该磁盘没有格式分区导致的于是有了以下操作: 1)先查看一下当前的系统情况,新加的盘是sdb  代码如下   [root@test ~]# lsblk NAME                        MAJ:MIN RM   SIZE RO TYPE MOUNTPOIN

android-求大神解答,自定义baseAdapter报错

问题描述 求大神解答,自定义baseAdapter报错 这是我的源码 package com.example.administrator.robot; import android.app.Activity;import android.content.Context;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.vie

java中使用switch case报错case expressions must be constant expressions

一.发现问题 private int CLICK_QUERY = 1; private int CLICK_RESET = 2; @Override public void onClick(View v) {  int tag = (Integer) v.getTag();  switch (tag)  {   case CLICK_QUERY:    query();   break;   case CLICK_RESET:    reset();   break;  } } 编译时一直报错:

android程序,eclipse没报错,但是运行会意外停止

问题描述 android程序,eclipse没报错,但是运行会意外停止 本人刚开始学习android,跟着书写了个程序,这个程序是会有一个东西随着手指拖动而移动,编译完没有问题,但是在手机上运行的时候却是意外停止,错误显示在了MainActivity的第27行,我真不知道哪里错,代码和书上写的一模一样,求大神指导 MainActivity的代码: package com.example.test34; import android.app.Activity; import android.os.

java定时器 run方法怎么返回值 我要返回result 代码里一直报错 晚生跪求解决

问题描述 java定时器 run方法怎么返回值 我要返回result 代码里一直报错 晚生跪求解决 public VirementResultInfo queryTransaction( final String bank, final TransactionInfo transactionInfo) { // final VirementResultInfo result = null; TimerTask task = new TimerTask() { @Override public v