当前位置 > 主页 > 万和大讲堂 >


Java学习注解Annotation 南京Java培训

2016-03-25 10:55

  1.  注解

 

  1.概述

 

  注解可以定义到方法上,类上,一个注解相当与一个类,就相当于实例了一个对象,加上了注解,就相当于加了一个标志。南京Java培训

 

  常用的注解:

 

  @Override:表示重新父类的方法,

 

  这个也可以判断是否覆盖的父类方法,在方法前面加上此语句,如果提示的错误,那么你不是覆盖的父类的方法,要是提示的没有错误,那么就是覆盖的父类的方法。

 

  @SuppressWarnings("deprecation"):取消编译器的警告(例如你使用的方法过时了)

 

  @Deprecated:在方法的最上边也上此语句,表示此方法过时,了,或者使用在类上面

 

  例子:就是取消警告

 

  [java]

 

  import java.util.ArrayList;

 

  import java.util.List;

 

  public class annotationDemo {

 

  /*

 

  * 对于集合,如果没有指定存储的类型,那么就会有安全警告,

 

  * 如果不想提示安全警告的话,那么就所在类或者方法上添加@SuppressWarnings(参数)

 

  */

 

  @SuppressWarnings("unchecked")

 

  public static void main(String[] args) {

 

  List list=new ArrayList();

 

  }

 

  }

 

  2.自定义注解

 

  1.格式

 

  权限 @interface 注解名称 { }

 

  步骤:南京Java培训

 

  定义注解类--->定义应用注解类的类--->对应用注解类的类进行反射的类(这个类可以另外定义,也可以是在应用注解类中进行测试)

 

  [java]

 

  import java.lang.annotation.Retention;

 

  importjava.lang.annotation.RetentionPolicy;

 

  //定义此注解保留在字节码中

 

  @Retention(RetentionPolicy.RUNTIME)

 

  public @interface MyAnnotation {

 

  }

 

  @MyAnnotation

 

  // 应用定义的注解类 南京Java培训

 

  public class ApplyMyAnnotation {

 

  public static void main(String[] args) {

 

  if (ApplyMyAnnotation.class.isAnnotationPresent(MyAnnotation.class)) {// 判断此类上是否存在指定的注解类

 

  MyAnnotation annotation= (MyAnnotation) ApplyMyAnnotation.class

 

  .getAnnotation(MyAnnotation.class);

 

  System.out.println(annotation);

 

  }

 

  }

 

  }

 

  结果:

 

  @www.fuxi.jiaqiang.MyAnnotation()

 

  2.声明周期

 

  格式:例如:@Retention(RetentionPolicy.CLASS)

 

  在自定一的注解类上定义周期,@Retention(参数类型) 参数类型是RetentionPolicy

 

  RetentionPolicy.CLASS:类文件上,运行时虚拟机不保留注解

 

  RetentionPolicy.RUNTIME:类文件上,运行时虚拟就保留注解

 

  RetentionPolicy.SOURCE:源文件上,丢弃注解 南京Java培训

 

  SuppressWarnings和Override是RetentionPolicy.SOURCE,

 

  Deprecated是在RetentionPolicy.RUNTIME,要向运行时调用定义的一样,那么必须是RetentionPolicy.RUNTIME,

 

  默认的都是RetentionPolicy.CLASS:


最近开班 more>
  • Web前端开发
  • 软件测试
  • 软件测试预科班
  • AI大模型+全栈开发开班
  • 云原生精英班
  • 云网预科班
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第五期
  • Java全栈
  • CISP
  • HCIP-cloud
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA
  • 6月9日
  • 5月21日
  • 5月14日
  • 6月9日
  • 5月7日
  • 5月26日
  • 5月19日
  • 5月12日
  • 6月3日
  • 6月9日
  • 随时开课
  • 7月12日
  • 5月19日
  • 5月19日
  • 5月7日
  • 5月10日
  • 5月24日
  • 5月24日
  • 随时开课
  • 随时开课
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入