原文链接:http://blog.sina.com.cn/s/blog_4b6d137b0100mu0m.html
最近我的Eclipse在关于Annotation的问题上老是莫名其妙的出些问题,最常见的就是关于Annotation中的@Override这个标记了。
按照定义@Override在java中表示覆写一个基类中的方法,其在源码中的定义如下
/**
* Indicates that a method declaration is intended to override a
* method declaration in a superclass. If a method is annotated with
* this annotation type but does not override a superclass method,
* compilers are required to generate an error message.
*
也就是说在基类中声明的method在继承类中实现的话久可以用@Override进行标注。但是问题时如果我的method时定义在一个interface中间而不是abstract class时这个标注会不会报错了?
我开始在机器中装的是jdk1.6,进行开发的时候定义接口如下:
public interface AttachmentManager {
public void saveAttachment(Attachment attachment);
public void saveAttachment(AttachmentVO attachmentVO, String collegeId);
public Attachment getAttachment(String id);
public void deleteAttachment(String id);
}
然后实现这个接口:
public class AttachmentManagerImpl implements AttachmentManager {
private AttachmentDao attachmentDao;
public void saveAttachment(Attachment attachment) {
attachmentDao.saveAttachment(attachment);
}
@Override
public void setAttachmentDao(AttachmentDao attachmentDao) {
this.attachmentDao = attachmentDao;
}
@Override
public void saveAttachment(AttachmentVO attachmentVO, String collegeId) {
MultipartFile data = attachmentVO.getData();
Attachment attachment = new Attachment();
try {
attachment = AttachmentUtil.createAttachment(data,collegeId);
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
attachmentDao.saveAttachment(attachment);
}
@Override
public Attachment getAttachment(String id) {
Attachment attachment = attachmentDao.getAttachment(id);
return attachment;
}
@Override
public void deleteAttachment(String id) {
Attachment attachment = getAttachment(id);
AttachmentUtil.deleteAttachment(attachment);
attachmentDao.deleteAttachment(attachment);
}
}
可以正常编译和运行,但是前几天Eclipse出了点小问题,然后就无法运行,提示的是无法找到method,当我把@Override删除以后一切正常,加上后又是一样。然后我把jdk卸载装了1.5,问题依旧,我又在命令行下进行编译还是一样,于是我将1.6重新装回,将Eclipse重新安装,运行成功,不再报错。
我上网查了查这个问题,大致的原因和我所碰到的情况一致,@override注释在jdk1.5环境下只能用于对继承的类的方法的重写,而不能用于对实现的接口中的方法的实现。
但是我之前装的1.6版本为什么会出现这个问题我只能认为是我的eclipse的原因了,只有天知道。
特别说明:本人转载文章纯为技术学习,总结经验,并无其他目的,若有他人继续转载,请链接原作者的地址,而不是本文的地址,以示对作者的尊重。最后对原作者的辛勤劳动表示感谢!
分享到:
相关推荐
本压缩包包含了JDK的两个重要版本:1.5(也称为Java 5)和1.6(Java 6),这两个版本在历史上对Java社区有着深远的影响。 JDK 1.5(2004年发布)是Java发展的一个重要里程碑,引入了许多新特性,极大地提升了开发...
4. **变量赋值检查**:编译器在JDK 1.5中增加了空指针检查,如果变量未初始化就使用,编译器会报错,增强了代码的健壮性。 5. **for-each循环**:新的增强for循环(也称为foreach循环)让遍历数组和集合变得更加...
1. **自动装箱与拆箱**:在JDK 1.5之前,基本类型与包装类之间的转换需要手动进行。而1.5版本引入了自动装箱(Autoboxing)和拆箱(Unboxing)机制,使得基本类型和其对应的包装类之间可以无缝转换,简化了编程。 2...
1. **泛型(Generics)**:JDK 1.5首次引入泛型,允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和重用性。泛型使得集合类(如List、Set、Map)可以明确地指定元素类型,避免了类型转换异常。 2. **...
Java开发和部署环境的搭建是每个Java开发者必备的技能之一,本压缩包包含了"jdk1.5"、"tomcat6"以及"jdk1.6"、"tomcat7"等关键组件,适用于那些需要在较低版本环境中运行或测试应用程序的用户。下面将详细介绍这些...
《Windows环境下JDK1.5的安装与使用详解》 Java Development Kit(JDK)是Oracle公司提供的用于开发和运行Java应用程序的软件包,而JDK1.5,也被称为Java SE 5.0,是Java历史上的一个重要版本,它在2004年发布,...
标题 "JDK1.5的annotation" 指的是Java Development Kit 1.5引入的注解(Annotation)特性。注解是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器或Java虚拟机(JVM)在编译时或运行时读取和...
虽然原文中提到的“Metadata”没有给出具体实现细节,但我们可以推测这里指的是 Java 1.5 中引入的注解(Annotation)。注解是一种用于向源代码添加元数据的方法,它允许开发者为代码添加额外的信息,而不影响代码的...
此外,Java 5引入了注解(Annotation),用于在代码中添加元数据。例如,`@Override`注解确保方法覆盖父类方法,`@Deprecated`标记过时的方法,`@ SuppressWarnings`则可以抑制特定类型的编译警告。注释处理允许工具...
JDK 1.5引入了注解(Annotation),这是一种元数据,可以给代码添加额外的信息,供编译器或工具使用。注解可用于生成文档、验证代码、运行时反射等场景。 九、内省(Introspection)改进 Java 1.5对反射API进行了...
标题中的“异常解决:错误:namespace element 'annotation-config' … on JDK 1.5 and higher”涉及的是在Java开发过程中遇到的一个错误,特别是在使用Spring框架时可能会遇到。这个错误通常表明在JDK 1.5及更高版本...
4. **国际化与本地化**:在JDK 1.6中,`java.text`和`java.util`包提供了丰富的支持,方便开发出符合不同地区和语言习惯的软件。例如,`ResourceBundle`类用于管理应用程序的本地化资源,`DateFormat`和`...
在JDK1.6中,增强了一些新特性,如改进的垃圾收集机制,提升了性能;引入了泛型,增强了类型安全,减少了类型转换的错误;添加了并发工具包,如`ConcurrentHashMap`,提高了多线程编程的效率;还有注解(Annotation...
### JDK1.5中的注解(Annotations):深入解析与应用 #### 引言 自JDK1.5起,Java引入了一项重要的语言特性——注解(Annotations),这一特性极大地扩展了Java语言的元数据表达能力,为开发人员提供了在代码中...
在本文中,我们将深入探讨如何在使用JDK 1.6版本的环境下,将Spring Boot与JSP(JavaServer Pages)进行有效整合。Spring Boot以其便捷的“开箱即用”特性深受开发者喜爱,但默认情况下它并不直接支持JSP视图解析。...
JDK 1.6版本发布于2006年,虽然现在已经有一些更新的版本,如Java 8、11或17,但理解1.6版本的API仍然是必要的,因为许多现存项目可能还在使用这个版本,或者需要与之兼容。以下是一些关键的知识点: 1. **基础类库...
类型安全的枚举是JDK 1.5中新增的一个特性,用于定义一组固定的常量值,并确保这些值在编译时是类型安全的。与传统的枚举相比,类型安全的枚举提供了更多的灵活性和安全性。 **优点**: 1. **类型安全**:确保枚举...
《JDK1.6中文帮助文档四》是Java开发者的重要参考资料,主要涵盖了JDK1.6版本中的各种特性和功能。这一部分的文档通常会详细解释API接口、类库、工具以及Java语言的关键细节,旨在帮助程序员更好地理解和利用JDK1.6...
在这个"JDK1.6的安装与配置.rar"压缩包中,主要包含的是JDK 1.6版本的安装程序,即"JDK1.6的安装与配置.exe"文件。本文将详细讲解JDK 1.6的安装步骤和配置方法,这对于Java初学者和开发者来说至关重要。 首先,我们...