对于软件程序的开发经过了三个发展过程:

    —— 将所有配置相关的内容直接写到代码之中

    —— 将配置与代码程序独立,将程序运行的时候根据配置文件进行操作

    —— 配置信息对用户透明且无用,将配置信息写回代码之中,但是利用一些明显的标记来区分配置信息与程序

Annotation是JDK1.5+最大的特性,利用注解的形式来实现程序功能的不同功能的实现

在Java SE中支持自定义Annotation的开发,并且提供了三个最常用的基础:

  @Override  @Deprecate  @SupperssWarnings

1、@Override 【准确的覆写】

  如果在输出对象的时候,希望其可以返回需要的内容,那么一定要进行 toString 方法的覆写。

class Book {
public String tostring() { //该方法的目的是覆写toString方法
//但是由于 该方法和Object类中的toString定义不同,无法实现覆写
return tostring ;
}
}

上例代码,由于没有按照覆写的格式定义覆写方法,所以无法完成覆写toString方法的功能,但是编译器不会报错,因为tostring方法的定义符合普通方法的定义要求。(结果会返回对象码)

为了告诉编译器,tostring() 应该是覆写的方法,可以加上“@Override”;可以明确的告诉编译器,这个方法是覆写方法;如果编译器发现该方法不是覆写方法则会报错。

class Book {
@Override
public String tostring() { //该方法的目的是覆写toString方法
//但是由于 该方法和Object类中的toString定义不同,无法实现覆写
return "tostring" ;
}
}
public class TestDemo {
public static void main(String [] args) {
System.out.println(new Book());
}
}

只有当tostring()按照正确的方法覆写后则不会在出现报错~~~

class Book {
@Override
public String toString() {
return "tostring" ;
}
}
public class TestDemo {
public static void main(String [] args) {
System.out.println(new Book());
}
}

##

出现@Override注解,则表示下一行的方法为覆写方法,如方法未实现覆写功能则会报错!

——————————————————

2、@Deprecat【声明过期操作】

  如果有一个功能包,里面有一个类;在该类中有一个fun()方法,在初期该方法非常的完善,但后期发现fun()方法有功能不足之处。

  选择一:取消掉fun()方法,同时设置fun()新的方法

  选择二:保存原fun()方法,但是会通过途径告诉别人此方法有问题,并提供新的fun()方法供开发者使用

  在实际开发当中,很明显后者优于前者!!!

  使用 @Deprecat 声明:

class Book {
@Deprecat
public void fun() {}
}
public class TestDemo {
public static void main(String [] args) {
System.out.println(new Book().fun());
}
}

在IDE开发环境下,会字面上的对@Deprecat声明过的方法加删除线;目的就是告诉其他人,该方法以及过期,不必在使用。对于新旧代码功能的交替开发非常有益。

——————————————

3、@SuppressWarnings【压制(多个)警告】

  部分程序会引发警告,而自己又不需要这些警告提醒!则可以利用 @SuppressWarnings 取消警告提示。

——————————————————

Java的 Annotation 新特性的更多相关文章

  1. [转] Java 8的新特性

    简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...

  2. Java 8的新特性—终极版

    作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...

  3. Java 9和Java 10的新特性

    http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...

  4. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  5. JDK 15 JAVA 15的新特性展望

    目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: T ...

  6. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  7. Java SE 6 新特性: 编译器 API

    新 API 功能简介 JDK 6 提供了在运行时调用编译器的 API,后面我们将假设把此 API 应用在 JSP 技术中.在传统的 JSP 技术中,服务器处理 JSP 通常需要进行下面 6 个步骤: ...

  8. Java 8 的新特性和改进总览

    这篇文章是对Java 8中即将到来的改进做一个面向开发者的综合性的总结,JDK的这一特性将会在2013年9月份发布. 在写这篇文章的时候,Java 8的开发工作仍然在紧张有序的进行中,语言特新和API ...

  9. java 各版本新特性

    Java 5,6,7,8,9,10,11新特性吐血总结 lkd_whh关注赞赏支持 12018.04.01 14:09:15字数 1,948阅读 10,615 作者:拔剑少年 简书地址:https:/ ...

随机推荐

  1. 微信小程序初体验遇到的坑

    今天,2017年1月9日凌晨,微信小程序如约上线.2007年1月9日,整整10年前的今天,苹果的iPhone手机正式问世! 经不起新技术的诱惑了,想试着开发一下看看.刚开始遇到很多坑,在这里记录一下, ...

  2. 仓库管理移动应用解决方案——C#开发的移动应用开源解决方案

    产品简介 SmoWMS是一款仓库管理移动解决方案,通过Smobiler平台开发,包含了仓库管理中基础的入库.出库.订单管理.调拨.盘点.报表等功能.支持扫码条码扫描.RFID扫描等仓库中常见的场景. ...

  3. 一文解读5G (转)

    今天要研究的对象,是5G接入网. 什么是接入网?相信不少同学,对这个概念一定不会陌生. 搬出这张移动通信架构图: 接入网,在我们无线通信里,一般指无线接入网,也就是通常所说的RAN(Radio Acc ...

  4. vscode使用formate格式化less遇到的坑

    就是这个家伙 我的代码 @input-padding-y : 8px;@input-padding-x : 12px; @input-padding-y-lg : @input-padding-y + ...

  5. centos 下创建本地镜像源,结合 nginx

    1. 创建同步文件 参考清华的Centos源,配置同步文件.https://mirrors.tuna.tsinghua.edu.cn/help/centos/ [root@localhost cent ...

  6. 海思Hi3519A MPP从入门到精通(二 系统控制)

    系统控制根据 Hi35xx 芯片特性,完成硬件各个部件的复位.基本初始化工作,同时负责完成 MPP(Media Process Platform 媒体处理平台)系统各个业务模块的初始化.去初始化以及管 ...

  7. Java学习路线|转至CodeSheep

    Java学习路线 基础知识 . 基本语法 基本网络知识:tcp/ip http/https 工具方面 . 操作系统:linux (CentOS\Ubuntu\Fe..) 代码管理:svn/git 持续 ...

  8. day64_10_8 vue的导入

    一.简介 vue是一个渐进式的js框架.具体介绍查看官网: https://cn.vuejs.org 在vue框架中,有两个文件,当在开发阶段时使用完整版vue,因为有报错信息,而在上市阶段可以使用m ...

  9. template指针小测试

    测试结论: 1 函数指针 -- 使用形参固定的一系列函数作为某个函数的形参 -- callback机制 2 模板指针 -- 使用形参可变的一系列函数作为某个函数的形参 -- 3 typename -- ...

  10. LINUX下查看点云图————point cloud(.ply .vtk .pcd)

    首先,你要确定点云的格式:.pcd(.vtk) 还是 .ply 如果是.pcd(.vtk),那么可以用pcl工具查看: 1.安装pcl,官网链接点击打开链接 sudo add-apt-reposito ...