JDK 1.5 1.6 override区别

今天在更新时发现有个别项目报错,报错信息

到网上搜索了之后,根据网上描述,修改了一批配置都不行:

http://bestchenwu.iteye.com/blog/997420(这个里面的方法二,即为我后面使用的办法)

http://blog.csdn.net/allenlinrui/article/details/5568817

http://blog.sina.com.cn/s/blog_6419bc670100i6hc.html

http://chen2337.blog.163.com/blog/static/34039920201041311718394/

最后问了一下同事,他说直接修改complier即可,

把上图中的1.5改成1.6后,再编译就没问题了,在Preferences里面设置所有项目的Compiler,所有项目异常都解决:

总结一下原因:

override(重写)这个关键字在1.5里面只能用于类的继承,不能用于接口的实现,应该说算是1.5的一个bug,如果是类的继承,方法前面可加可不加,JVM在编译的时候会默认是重写(Eclipse默认给加上);但如果是接口的实现,也就是说只有方法声明,没有方法体,方法前不能加这个注解,一旦加上这个注解,编译器在编译的时候就会报错,如下图说明

但是在1.6中,修复了这个问题,即可以用于接口的实现也可以用于类的继承,所以在1.6中,继承或实现接口时,在方法前面加或者不加@Override都默认认为是重写,Eclipse默认会给加上

@Override,如下图说明

时间: 2024-11-25 20:34:42

JDK 1.5 1.6 override区别的相关文章

jdk、jre与jvm的区别与联系

为了学习数据库,重装了系统,之前前一直在用eclipse,现在准备换成myeclipse,这之前当然需要重新设置环境变量,顺手写下有关jdk.jre与jvm的区别与联系以供交流参考. 首先来说一下JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API )

Java学习2 - JDK和JRE和JVM的区别_JDK的下载安装_环境变量配置

一 JDK和JRE和JVM的区别 Jdk: Java Development kit - Java 开发工具 JRE: Java Runtime Environment - java运行环境 JVM: Java Virtual Machine - Java 虚拟机 关系:Jdk包含JRE,JRE包含JVM 二 Java 开发环境配置 1.下载JDK: www.oracle.com(download->Java(右侧)->Java SE (includes JavaFX) | Early Acc

Java JDK、JRE、JVM的区别与联系

title: Java JDK.JRE.JVM的区别与联系 date: 2018-03-17 23:07:33 category: 原创 --- JDK: 全名:Java Development Kit 含义:Java开发工具包 JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre. JDK是整个JAVA的核心,包括了Java运行环境JRE(Ja

jdk,jre,jvm的区别以及联系

作为一个 java开发工程师,我做面试题的时候,竟然都搞不懂jdk,jre,jvm的区别和联系了,真实太菜了.不过吃一堑长一智,多多吸取教训还是比较好的. JVM:java虚拟机,用来编译和运行java程序的,将java文件编译成.class进行解释执行. JVM > JDK > JRE JRE:指的是Java运行环境,Class文件运行时需要调用各种Java类库,即class文件运行时,需要调用各种类库,就需要依赖jre中的lib库,可以认为jvm+lib组成jre 我们可以看一下JRE的组

JDK动态代理和CGLIB的区别

Aspect默认情况下不用实现接口,但对于目标对象,在默认情况下必须实现接口 如果没有实现接口必须引入CGLIB库 我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动传入,从JoinPoint中可以取得 参数值.方法名等等 1.如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2.如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3.如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换

java中的重载(overload)和重写(override)区别

方法重载(overload): 方法重载就是在一个类中可以创建多个方法,它们具有相同的名字,但是具有不同的参数和不同定义,调用方法时通过传递给他们的不同参数个数和参数列表决定具体使用     哪        个方法,这就是多态性,重载的时候方法名一样,参数类型和个数不一样,返回值烈性可以相同可以不同,可以有不同的访问修饰符,可以抛出不同的异常. 例子: package com.test.entity; public class Dog { Dog() { this.bark(); } void

JDK、JRE、JVN 的区别

JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar). 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK

在JDK 6和JDK 7的substring()方法的区别?

原文链接:https://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ 在JDK 6和JDK 7中substring(int beginIndex,int endIndex)的实现是不同的,下面将会做出详细的解释.为简单起见,substring()方法表示的substring(int beginIndex,int endIndex)在这篇文章中的方法. 1.substring()方法 substring

JDK、JRE、JVM的区别和联系

JDK=JRE+开发工具包: JRE=JVM+核心内库: JVM--java virtual machine(Java虚拟机).Java语言的一个非常重要的特点就是跨平台,而要实现跨平台就是依靠JVM(Java虚拟机).不同的平台对应不同的JVM,Java程序编译后生成的字节码文件(.class文件)通过JVM(Java虚拟机)生成具体平台机器执行指令,这就是Java能够"一次编译,到处运行"的原因. JRE--Java Runtime Environment,Java运行环境.仅仅靠