Annotation可以说是整个JDK发展的一项重要技术,因为从现在的开发来说Annotation使用广泛
如果想要理解Annotation作用,对于项目的开发,会经历3个过程
1.在进行软件开发的过程中,会将所有使用到的第三方信息和操作都写在程序里;
如果现在突然假设你服务器地址更换了,你就需要更改程序源代码,而这个工程就相当庞大了,
2.使用一个配置文件,程序在运行的时候要通过配置文件读取相关的配置操作
如果此时要想更改配置,也就是可以在不修改源代码的前提下事项目的变更。
当使用配置文件后,虽然代码的维护方便了,但是开发确实不方便,另外,这些配置文件如果是非专业人士很难去修改,并且会造成一个可怕的事情;一个项目的配置文件可能会非常多。 所以我们一旦进行修改的时候那么配置文件的数量庞大会直接造成开发者的晕眩。于是JDK提供一个新的做法,将配置写入程序里面,这样就形成注解的概念。
但是需要提醒的是,并不是说写了注解之后就可以不使用配置文件了,事实上配置文件现在依然存在,只不过少了。本次要看3个JDK内置的注解:@Override @Deprecated @SuppressWarnings
准确覆写:@Override
方法覆写:发现在继承关系之中,子类定义了与父类方法名称相同 参数类型及个数 返回值类型相同的时候称为覆写,被覆写的方法不能够拥有比父类更为严格的访问权限,
范例:观察问题
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里面只要是你覆写的方法基本上都会有该注解自动生成
声明过期处理:@Deprecated
如果现在你有一个程序类,从项目的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有很多方法都不建议使用
压制警告:@SuppressWarnings
当调用了某些操作可能产生问题的时候,可能会出现警告信息,但是警告信息并不是错。在你自己的可控制访问里面,会认为警告没有意义,这个时候不想总提示警告, 就可以对警告进行压制
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