JDK 1.5三的主要特性 —— Annotation
在JDK 1.5之后,程序允许通过注解(Annotation)的方式来进行程序的定义,而在Java SE之中存在了三种Annotation:@Override、@Deprecated、@SuppressWarnings。
1、 准确的覆写:@Override
如果在进行方法的覆写过程之中,那么要求是:方法名称、参数的类型及个数完全相同,而在开发之中有可能会由于手误导致方法不能被正确的覆写。
package cn.mldn.demo; class Message { public String tostring() { // 原本打算覆写toString() return "Hello World ." ; } } public class TestDemo { public static void main(String[] args) throws Exception { System.out.println(new Message()); // 错误 } } |
而这个时候没有出现任何的语法错误,因为JDK会认为tostring()是一个新的方法,所以不会出现编译的错误,可是从实际上来讲,这个方法应该是被覆写的,所以为了保证这种错误的问题在程序编译的时候可以正常解决,那么在方法覆写时可以增加上“@Override”定义。
package cn.mldn.demo; class Message { @Override public String toString() { // 原本打算覆写toString() return "Hello World ." ; } } public class TestDemo { public static void main(String[] args) throws Exception { System.out.println(new Message()); // 错误 } } |
2、 声明过期操作:@Deprecated
对于程序开发而言,往往一些使用的类要进行修改或者是维护,那么如果说现在一个类之中的某个方法,可能一开始推出的时候就存在了一些问题,在修改之后不希望人再去使用这些方法,那么肯定不能直接删除,因为如果直接删除了,那么之前的程序就会出现问题了,所以最好的做法是告诉用户:这个方法存在了问题,不建议再使用了,这个时候就使用“@Deprecated”声明。
package cn.mldn.demo; class Message { @Deprecated public void print(){} } public class TestDemo { public static void main(String[] args) throws Exception { new Message().print(); } } |
如果日后在文档之中发现存在了“Deprecated”,就表示这个方法不建议用户继续使用了,就别用了。
3、 压制警告信息:@SuppressWarnings
程序在编译的时候如果存在了某些安全隐患,肯定会提示用户,所以不想让其显示的话,就增加压制警告的信息。
package cn.mldn.demo; class Message<T> { @Deprecated public void print(){ System.out.println("sss"); } } public class TestDemo { @SuppressWarnings({ "rawtypes", "unused" }) public static void main(String[] args) throws Exception { Message msg = new Message() ; } } |
如果按照正常的开发来讲,以上的一些Annotation意义不大,只是一种使用上的习惯而已,但是如果要想真正的去研究Annotation使用,还是需要了解一些历史的,关于软件的开发模式:
· 第一阶段:会将所有的操作都写在程序之中,例如:网络程序,连接的服务器地址,用户验证等;
· 第二阶段:程序 + 配置文件,配置文件和程序相分离,配置文件过多;
· 第三阶段:将配置文件写回到程序之中,但是和程序进行有效的分离。
4、总结
所有的JDK 1.5新特性要求先能看懂,能知道语法做什么,至于说什么时候用,怎么用,还不到时候呢。
而此处讲解完成之后,Java的第一大重点面向对象部分就彻底讲完了。