Annotation能够说是整个JDK发展的一项重要技术,由于从如今的开发来讲Annotation使用普遍服务器
若是想要理解Annotation做用,对于项目的开发,会经历3个过程ide
1.在进行软件开发的过程当中,会将全部使用到的第三方信息和操做都写在程序里;工具
若是如今忽然假设你服务器地址更换了,你就须要更改程序源代码,而这个工程就至关庞大了, 开发工具
2.使用一个配置文件,程序在运行的时候要经过配置文件读取相关的配置操做spa
若是此时要想更改配置,也就是能够在不修改源代码的前提下事项目的变动。code
当使用配置文件后,虽然代码的维护方便了,可是开发确实不方便,另外,这些配置文件若是是非专业人士很难去修改,而且会形成一个可怕的事情;一个项目的配置文件可能会很是多。 因此咱们一旦进行修改的时候那么配置文件的数量庞大会直接形成开发者的晕眩。因而JDK提供一个新的作法,将配置写入程序里面,这样就造成注解的概念。blog
可是须要提醒的是,并非说写了注解以后就能够不使用配置文件了,事实上配置文件如今依然存在,只不过少了。本次要看3个JDK内置的注解:@Override @Deprecated @SuppressWarnings 继承
方法覆写:发如今继承关系之中,子类定义了与父类方法名称相同 参数类型及个数 返回值类型相同的时候称为覆写,被覆写的方法不可以拥有比父类更为严格的访问权限,ip
范例:观察问题开发
1 package cn.Tony.demo; 2 3 class Person{ 4 public String toString() { 5 return "是一我的"; 6 } 7 } 8 public class TestDemo { 9 public static void main(String[] args) { 10 System.out.println(new Person()); 11 } 12 }
这个时候不叫覆写,属于本身定义一个方法,这个问题在编译的时候没法显示因此为了保证覆写方法的严格可使用一非注解(@Override)来检测:若是该方法肯定成功覆写了,则不会有语法错误,若是没有成功的覆写,则认为是语法错误,
当你覆写方法正确的时候,那么就表示没有任何问题,
在Eclipse里面只要是你覆写的方法基本上都会有该注解自动生成
若是如今你有一个程序类,从项目的1.0到77.0版本一直使用,从78.0版本开始,就会产生问题,那么这个时候你能直接删除这个类,换一个新的吗,不能够,由于其余的旧还在使用这个类,而且这个类在旧版本没问题,在新版本没问题,因此这个时候新版本扩展的时候,不建议使用这个类了,就加一个过时的注解
范例:观察过时操做
1 package cn.Tony.demo; 2 3 class Person{ 4 @Deprecated //表示该方法已经不建议使用了,当时即便使用了也不会出错误 5 public Person() {} 6 public Person(String name) {} 7 @Deprecated 8 public void fun() {} 9 } 10 public class TestDemo { 11 public static void main(String[] args) { 12 Person per=new Person(); 13 per.fun(); 14 per=new Person(""); 15 } 16 }
这种过时的处理操做每每出如今一些平台的支持上,例如JDK这个平台,在JDK有不少方法都不建议使用
当调用了某些操做可能产生问题的时候,可能会出现警告信息,可是警告信息并非错。在你本身的可控制访问里面,会认为警告没有意义,这个时候不想总提示警告, 就能够对警告进行压制
1 public class TestDemo { 2 @SuppressWarnings({ "rawtypes", "unused" }) 3 public static void main(String[] args) { 4 Person per=new Person(); 5 } 6 }
有了Eclipse开发工具以后这些警告信息出现,直接进行代码的纠正处理,
总结:
这三种Annocation是JDK默认支持的程序类中使用的,之后会接触到一些功能性的Annotation