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

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

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

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

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. Python 字符串用法总结

    一.将某个对象转换为字符串,有str()和repr()两种方法 区别:repr() 转化为供解释器读取的形式str() 转化为适于人阅读的形式 a = 123456 print('repr输出:', ...

  2. lvm - Logical Volume Manager - 逻辑卷管理

    下午突然感觉 lvm 相关的知识忘记了,恰好机房里的fedora服务器上 挂了4个500GB的HDD 硬盘没有使用,就拿来操作了一番: 下面有几篇关于lvm不错的文章,进行了链接,网上也有很多不错的博 ...

  3. [Go] golang实时监控日志文件的包tail

    在linux中有一个tail命令,tail -f可以实时的监控文件新增加的内容,如果用代码实现这个逻辑,可以下载使用这个包go get github.com/hpcloud/tail/... 测试代码 ...

  4. Webshell篇

    常用方法简介: 一.0day拿webshell 参考工具:织梦漏洞利用小工具 二.通过注入漏洞拿Webshell 前提条件:具有足够权限,对写入木马的文件夹要有写入权限,知道网站绝对路径. 对于mss ...

  5. easyui三

    陈旧的开发模式 美工(ui工程师:出一个项目模型) java工程师:将原有的html转成jsp,动态展示数据 缺点: 客户需要调节前端的展示效果 解决:由美工去重新排版,重新选色.Vs前后端分离 美工 ...

  6. sudo apt-get 与 yum 常用命令

    yum -RedHat:CentOS... -xxx.rpmsudo apt-get  -Debian:Ubuntu...   -xxx.deb 安装工具rpm -ivh yum-2.0.4-1.rh ...

  7. Java:String,int相互转化

    int转String int a: a + “”    String.valueOf(a)    Interger.toString(a)    一般使用以上几种方法进行转化 第一种方法效率不好,ja ...

  8. 关于webpack的面试题

    随着现代前端开发的复杂度和规模越来越庞大,已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用:又如sass和less的代码浏览器也是不支持的. 而如果摒弃了这些开发框 ...

  9. 快速傅立叶变换(FFT)

    多项式 系数表示法 设\(f(x)\)为一个\(n-1\)次多项式,则 \(f(x)=\sum\limits_{i=0}^{n-1}a_i*x_i\) 其中\(a_i\)为\(f(x)\)的系数,用这 ...

  10. 安装Microsoft Office 2010 提示需要安装MSXML版本6.10.1129.0 的解决方案

    1.先按照https://blog.csdn.net/c_lanxiaofang/article/details/80410868进行处理安装 2.安装vison2010,如果还存在提示未安装MSXM ...