一、什么是注解?有什么作用?
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两个。
原文:https://www.cnblogs.com/lbrs/p/11141329.html