一, 什么是注解? 有什么作用?
Annotation 是 1.5 之后新加的功能, 是一种 "元数据", 它的存在不会影响程序的逻辑和运行结果, 是对类, 方法, 变量进行的说明. 那么这种不会影响程序运行的代码会有什么用呢? 注解其实在很多框架中有很多应用, 比如 Spring 等. 此外, 注解可以进行格式检查. 比如 @override 的方法是覆盖父类的方法, 如果子类中程序名称不小心写错, 此时父类根本没有这个方法, 注解就会提出警告; 而当没有注解的时候, JVM 认为程序没有问题, 是子类一个新的方法而已.
- class Father
- {
- public void P()
- {
- System.out.println("The father class");
- }
- }
- public class Ann extends Father{
- public void Pa()
- {
- System.out.println("The son class");
- }
- public static void main(String []args)
- {
- Ann a=new Ann();
- a.P();
- }
- }
上面的例子极为简单, 只是最基本的继承和覆盖, 其中子类的方法不小心由 P 拼写为 Pa, 但运行出的结果仍然是父类的方法, 当添加注解后, 这一情况就不会出现.
- class Father
- {
- public void P()
- {
- System.out.println("The father class");
- }
- }
- public class Ann extends Father{
- @Override
- public void Pa()
- {
- System.out.println("The son class");
- }
- public static void main(String []args)
- {
- Ann a=new Ann();
- a.P();
- }
- }
上面的程序无法运行, 因为注解发现子类中的方法并没有覆盖父类的方法. 强行运行就会直接报错
二, JDK 三大内置注解
@Override 上面已经提到过了, 还有 @SuppressWarnings 和 @Deprecated 两个.
来源: http://www.bubuko.com/infodetail-3114778.html