`
nwsuafer
  • 浏览: 13446 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

关于@override报错的问题

 
阅读更多
转载自 enilu
最终编辑 enilu

刚进公司,公司让看CXF,发现有很多annotation的标注,annotation注释是在jdk1.5加入的新东西,没用过,所以只能照着写了。在公司倒也没出错,公司的jdk是1.6的,把东西带回家后,在自己的电脑(jdk1.5)上一跑,报错了,是@override的错。
费了半天劲才调好,原因如下:
关于@override注释在jdk1.5环境下只能用于对继承的类的方法的重写,而不能用于对实现的接口中的方法的实现。
例如:
Java代码
public interface Interface_A{
public void methodA();
}
public interface Interface_A{
public void methodA();
}
Java代码
public class parentClass_B{
public void methodB(){

}
}
public class parentClass_B{
public void methodB(){

}
}
Java代码
public class test extends parentClass_B implements Interface_A{
@override //此处在jdk1.5中会报错,1.6中则不会
public void methodA(){
.............
}

@override //此处不会报错
public void methodB(){
.............
}
}
public class test extends parentClass_B implements Interface_A{
@override //此处在jdk1.5中会报错,1.6中则不会
public void methodA(){
.............
}

@override //此处不会报错
public void methodB(){
.............
}
}
解决办法有以下:1,在右键项目选择Properties-->java Compiler-->Compiler Compliance Level-->将jdk设置为6.0.。但是有时候这样还不行,天知道为什么,
这个时候我是只能将代码中的@Override删除掉了,不知谁有好的方法

另外有时候会报这种错误:Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 或者bad version number in .class file unable to load class,也是由于项目变量中的jdk版本和Compiler Compliance Level中jdk版本不一致所一致
如果这样处理还不行的话,那就是你在eclipse里配置的tomcat的jdk的版本和项目path里配置的不一致了,通过菜单Windows-->Preferences-->tomcat-->jdk-->tomcat JDK home 选择与项目一直的jdk即可。
有时候可能会出现这种情况,你项目里的jdk配置的是你自己的jdk6,而你看到tomcat JDK home中也是Myeclipse6.0,主管认为两个都是java6嘛,应该没有问题的,但是有时候还是不行,偶就撞上这个霉头了,刚开始怎么也找不到问题,这个问题困扰了好几天


分享到:
评论

相关推荐

    android @override 报错解决方案

    当遇到“`@Override`报错”这个问题时,我们需要检查项目的Java编译器版本设置。通常,我们需要将项目配置中的Java编译器版本升级到1.6或更高,以支持对接口方法的`@Override`注解。具体步骤如下: 1. 打开Eclipse ...

    详解Java中@Override的作用

    相反,如果我们不使用 `@Override`,即使方法名拼写错误,编译器也不会报错,而是认为 `ChildClass` 中新增了一个名为 `oncreate` 的方法,这可能导致程序逻辑错误。 总结一下,`@Override` 在Java中的作用主要体现...

    个人开发中遇到常见问题及解决办法(吐血总结)

    9 Java @override报错的解决方法 10 js实现 选中子页面的checkbox,点击确认,将选中的数据显示到父页面 11 解析oracle的rownum 12 ava web项目中开放一个webservice接口实例 13 js方式实现 系统时间显示 14 js 按...

    AndroidStudio中重载方法@Override的使用详解

    当一个方法本应重写父类方法,但因签名不匹配而未生效时,编译器会报错,帮助开发者及时发现并修正问题。 总之,`@Override` 注解在Android Studio 中扮演着至关重要的角色,它确保了方法重写的正确性,提高了代码...

    Annotation--学习:JDK内建Annotation

    - `@Override`: 检查方法是否真正重写父类方法,若未重写,则编译器会报错。 - `@Deprecated`: 标记不再推荐使用的代码,编译器会在使用时发出警告。 - `@ SuppressWarnings`: 允许程序员抑制特定的编译器警告。 ...

    关于iframe页面报错如何跳到框架显示

    ### 关于iframe页面报错如何跳到框架显示 在网页开发过程中,经常遇到的一个问题是当嵌入在`iframe`中的内容出现错误时,如何让用户直接看到这个错误所在的框架或者跳转到一个特定的页面。这个问题涉及到前端...

    The method of type must override a superclass method解决方式, myeclipse, java, web

    4. **使用了`@Override`注解,但没有找到可重写的方法**:这表明可能存在拼写错误或者父类的版本问题,导致找不到要重写的方法。 在MyEclipse中,处理这个问题的步骤如下: 1. **检查方法签名**:确保子类方法的...

    annotation 详解

    当使用`@Override`标注一个方法时,如果该方法实际上并未重写父类中的方法,编译器会报错。 - **示例** 假设我们有一个子类`CustomClass`,并希望重写父类的`toString()`方法: ```java public class Custom...

    maven配置工具

    1. **处理@Override报错**:当出现@Override报错时,需要在`pom.xml`中添加Maven编译插件配置,指定JDK版本,例如: ```xml <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>...

    aidlDemo(AndroidStudio和Eclipse版本)

    @Override public IBinder onBind(Intent intent) { return mBinder; } private final IAidlService.Stub mBinder = new IAidlService.Stub() { @Override public int getNumber() throws RemoteException {...

    android studio初始化报错

    在Android开发过程中,有时会遇到集成OpenCV库时出现初始化报错的问题,导致"OpenCV error: Cannot load info library for OpenCV"。这个问题通常与OpenCV库的安装、配置、依赖或版本不兼容有关。以下是一些详细的...

    注解annotation的详细介绍

    如果方法被标记为`@Override`,但实际上并没有重写任何超类方法,编译器将报错。例如,在例子中,尝试重写`toString()`方法时拼写错误为`tostring()`,编译器会指出错误。 2. **@Deprecated**: `@Deprecated`注解...

    FragmentView

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment1, null); SimpleAdapter sa = new ...

    解决mybatis-plus3.1.1版本使用lambda表达式查询报错的方法

    总的来说,解决MyBatis-Plus 3.1.1版本使用Lambda表达式查询报错的问题,主要从以下几个方面入手: 1. 检查并确保实体类中的字段有正确的`@TableField`注解,指定了数据库中的对应列名。 2. 在配置中启用Lambda支持...

    EditText Text 当输入有误的时候 报错,并获取焦点。

    标题和描述提到的问题涉及到如何在`EditText`输入有误时,不仅显示错误信息,还要让这个错误的`EditText`获得焦点并改变背景色以提示用户。以下将详细讲解如何实现这一功能。 首先,我们需要在`EditText`中设置`...

    Java注解Annotaton.doc

    它确保了你确实是在覆盖父类的方法,如果方法签名不匹配,编译器会报错。`@Override` 只能应用于方法,不能用于类、接口或其他元素。 ```java class Father { public void fly() {} } class Son extends ...

    完美解决request请求流只能读取一次的问题

    完美解决request请求流只能读取一次的问题 在Web开发中,Request对象的InputStream只能读取一次,这是一个常见的限制。为了解决这个问题,我们可以自定义一个HttpServletRequestWrapper,覆写getInputStream()和...

    Java注释@interface的用法

    当在方法前添加`@Override`时,如果方法签名与父类中的方法不匹配,编译器会报错,从而帮助开发者避免因误写方法名而导致的错误。 `@Deprecated`注解用于标记一个类、接口、字段或方法已过时,通常是因为有更好的...

    Java Annotation详解

    - `@Override`:确保方法确实重写了超类中的方法,如果方法不存在于超类中,编译器会报错。 - `@Deprecated`:标记不再推荐使用的代码,编译器会在使用到这些代码时发出警告。 - `@SuppressWarnings`:抑制特定类型...

Global site tag (gtag.js) - Google Analytics