Java自定义注解

谁践踏了优雅 2022-06-15 07:54 267阅读 0赞

Java注解

Java注解是JDK5.0以后版本引入的新特性,其中有JDK提供的基本注解,也可以自定义注解。其中:

JDK提供的基本注解有

1,@SuppressWarnings,阻止编译器发出某些警告信息,其参数可以有:

deprecation:过时的类或方法警告

unchecked:执行了未检查的转换时(强转类型时)

fallthrough:switch程序通往下一种情况而没有break时的警告

path:在类路径,源文件路径中有不存在的路径时警告信息

serial:在可序列化的类上缺少serialVersionUID时警告

finally:任何finally子句不能完成时的警告

all:以上所有情况的警告

2,@ Deprecation

标记某个过时的类或方法

3,@ Override

写在方法的前面,用来标记方法是重写了某个父类的方法

自定义注解

自定义注解包括类注解,方法注解,参数注解,构造器注解,类的属性注解,包注解,局部变量注解,注解类注解。其中最常用的是类注解,方法注解,参数注解。

1,定义类注解:







@Target(ElementType.METHOD)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

public @interface JoeyxOperation {

   public String code();

 

   public String desc();

 

   public String business() default “demo”;

}

2,定义方法注解:







@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

public @interface JoeyxResource {

   public String code();

 

   public String desc();

 

   public String policy() default “Required”;

}

3,给类上和方法上增加注解:







@JoeyxResource(code = “userManage”, desc = “User Manage Service”)

public class UserService implements IUserService {

 

   @Override

   @JoeyxOperation(code = “create”, desc = “Create Records”)

   public int addUser3system(UserVO user) {

 

      return 0;

   }

 

}

4,获取类和方法上的注解:







public class SecurityInterceptor {

   public static void check() {

      JoeyxResource rAnnotation = UserService.class

            .getAnnotation(JoeyxResource.class);

      Method[] methods = UserService.class.getDeclaredMethods();

      System.out.println(“code:” + rAnnotation.code() + “\tdesc:”

            + rAnnotation.desc());

      for (Method m : methods) {

         JoeyxOperation oAnnotation =m.getAnnotation(JoeyxOperation.class);

         System.out.println(“code:” + oAnnotation.code() +“\tdesc:”

                + oAnnotation.desc());

      }

   }

 

   public static void main(String[] args) {

      check();

   }

}

 

5,运行main方法后,结果为:

JAVA注解开发

其中:

@Retention用来说明该注解的生命周期,可取参数有

RetentionPolicy.RUNTIME 注解可以保留到运行时

RetentionPolicy.SOURCE 注解保留在源文件中

RetentionPolicy.CLASS 注解保留在class文件中

@Target 用来说明该注解可以被声明在那些元素前

ElementType.TYPE 标记该注解只能被声明在类前

ElementType.METHOD 标记该注解只能被声明在方法前

ElementType.PARAMETER 标记该注解只能被声明在方法参数前

ElementType.FIELD 标记该注解只能被声明在类的属性前

ElementType.ANNOTATION_TYPE 标记该注解只能被声明在注解类前

ElementType.PACKAGE 标记该注解只能被声明在包前

ElementType.CONSTRUCTOR 标记该注解只能被声明在构造器前

ElementType.LOCAL_VARIABLE 标记该注解只能被声明在局部变量前

@Documented标记该注解可以出现在java文档中

@Inherited变价该注解可以被子注解集成

发表评论

表情:
评论列表 (有 0 条评论,267人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java定义注解

    简介:     注解是在JDK5.0及以后版本中引入的。他可以用于创建文档,跟踪代码中的依赖性,甚至执行基本的编译时检查,而且还可以作为在spring框架中进行注解式注入Be

    相关 Java定义注解

    说到注解,也是面试中的重点高频知识点,因为利用注解加上反射可以做很多事情,通过注解对一些类或方法进行标示(override),通过注解、反射和AOP切面来做缓存,通过注解在类文