- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
光环大数据--大数据培训人工智能培训
每个 Java 开发者都应该知道的 几个注解_光环大数据推出AI 智客计划送2000
助学金
自 JDK5 推出以来,注解已成为Java 生态系统不可缺少的一部分。虽然开
发者为Java 框架(例如Spring 的@Autowired)开发了无数的自定义注解,但编译
器认可的一些注解非常重要。
在本文中,我们将看到5 个Java 编译器支持的注解,并了解其期望用途。
顺便,我们将探索其创建背后的基本原理,围绕其用途的一些特质,以及正确应
用的一些例子。虽然其中有些注解比其他注解更为常见,但非初学Java 开发人
员都应该消化了解每个注解。
首先,我们将深入研究Java 中最常用的注解之一:@Override。
@Override
覆盖方法的实现或为抽象方法提供实现的能力是任何面向对象(OO)语言的
核心。由于Java 是OO 语言,具有许多常见的面向对象的抽象机制,所以在非终
极超类定义的非最终方法或接口中的任何方法(接口方法不能是最终的)都可以
被子类覆盖。虽然开始时覆盖方法看起来很简单,但是如果执行不正确,则可能
会引入许多微小的bug。例如,用覆盖类类型的单个参数覆盖Object#equals 方
法就是一种常见的错误:
public class Foo { public boolean equals(Foo foo) { // Check if the
supplied object is equal to this object
光环大数据
光环大数据--大数据培训人工智能培训
}
}
由于所有类都隐式地从Object 类继承,Foo 类的目的是覆盖Object#equals
方法,因此Foo 可被测试是否与Java 中的任何其他对象相等。虽然我们的意图
是正确的,但我们的实现则并非如此。实际上,我们的实现根本不覆盖
Object#equals 方法。相反,我们提供了方法的重载:我们不是替换 Object 类
提供的equals 方法的实现,而是提供第二个方法来专门接受Foo 对象,而不是
Object 对象。我们的错误可以用简单实现来举例说明,该实现对所有的相等检
查都返回true,但当提供的对象被视为Object(Java 将执行的操作,例如在Java
Collections Framework 即JCF 中)时,就永远不会调用它:
public class Foo { public boolean equals(Foo foo) { return true;
}
}
Object foo = new Foo();
Object identicalFoo = new Foo();
System.out.println(foo.equals(identicalFoo)); // false
这是一个非常微妙但常见的错误,可以被编译器捕获。我们的意图是覆盖
Object#equals 方法,但因为我们指定了一个类型为Foo 而不是Object 类型的
参数,所以我们实际上提供了重载的Object#equals 方法,而不是覆盖它。为了
光环大数据
光环大数据--大数据培训人工智能培训
捕获这种错误,我们引入@Override 注解,它指示编译器检查覆盖实际有没有执
行。如果没有执行有效的覆盖,则会抛出错误。因此,我们可以更新Foo 类,如
下所示:
public class Foo { @Override
public boolean equals(Foo foo) { return true;
}
}
如果我们尝试编译这个类,我们现在收到以下错误:
$ javac Foo.java
Foo.java:3: error: method does not overrid
您可能关注的文档
- 练习一次函数基础练习 274组.doc
- 辽宁省高校岗前培训心理学案例总结.doc
- 临床医学综合考试大纲1.doc
- 2010年度中山大学848信息资源组织考研真题精讲.pdf
- 六指街2013年食品安全进校园活动方案通知1(改) 2.doc
- 2013年中山大学448汉语写作及百科知识考研真题及讲解.pdf
- 路基填筑施工方案上报.doc
- 2011-2012年人教版广东省揭阳市普宁市中英文学校九年级物理上册期末试卷.pdf
- 2014年度3月辽宁省会计从业《初级会计电算化》真题(教师版).pdf
- 2014年度中山大学英语笔译外国语言文学考研真题考研参考书,考研复试线-育明广州分校.pdf
- 职业技术学院2024级工业机器人技术(安装与维护)专业人才培养方案.docx
- 职业技术学院2024级应用化工技术专业人才培养方案.pdf
- 职业技术学院2024级软件技术(前端开发)专业人才培养方案.pdf
- 职业技术学院2024软件技术专业人才培养方案.docx
- 职业技术学院2024级信息安全技术应用(安全运维)专业人才培养方案.docx
- 职业技术学院2024级新能源汽车检测与维修技术(车辆鉴定与评估)专业人才培养方案.pdf
- 职业技术学院2024级石油炼制技术专业人才培养方案.pdf
- 职业技术学院2024级环境监测技术专业人才培养方案.docx
- 职业技术学院2024级汽车制造与试验技术专业人才培养方案.pdf
- 职业技术学院2024级信息安全技术应用专业人才培养方案.pdf
文档评论(0)