美文网首页
六、注解

六、注解

作者: 小鱼你好 | 来源:发表于2022-05-13 14:23 被阅读0次

基本注解:

@Override:覆盖超类方法
@Deprecated:一般作为过时方法标记
@SuppressWarnings:关闭不当的编译器警告
@SuppressWarnings(value={"deprecation"})可指定的值
deprecation -- 使用了不赞成使用的类或方法时的警告
unchecked -- 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。
fallthrough -- 当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。
path -- 在类路径、源文件路径等中有不存在的路径时的警告。
serial -- 当在可序列化的类上缺少 serialVersionUID 定义时的警告。
finally -- 任何 finally 子句不能正常完成时的警告。
all -- 关于以上所有情况的警告。

元注解:

@Target:注解用于什么地方,ElementType可声明
TYPE:类、接口(包括注释类型)或枚举声明
FIELD:字段声明(包括枚举常量)
METHOD:方法声明
PARAMETER:参数声明
CONSTRUCTOR:构造方法声明
LOCAL_VARIABLE:局部变量声明
ANNOTATION_TYPE:注释类型声明
PACKAGE :包声明
@Retention:表示需要在什么级别保持注解信息,RetentionPolicy可声明
SOURCE:注解将被编译器丢弃
CLASS:注解在class文件中可用,但会被VM丢弃
RUNTIME:VM将在运行期也保留注解,可通过反射读取注解信息
@Documented:标记这些注解是否包含在用户文档中
@Inherited:标记这个注解是继承于哪个注解类
Java7新增:
@SafeVarargs:忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告
Java8新增:
@FunctionalInterface:标识一个匿名函数或函数式接口
@Repeatable:标识某注解可以在同一个声明上使用多次

//定义一个注解示例
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UseCase{
    public int id();
    public String description()default "no description";
}
//注解使用示例
public class PassWordUtils{
    @UseCase(id = 47,description = "you description message"
    public boolean method(){
    ...
    }
}

注解处理器:

//定义一个UseCase注解的处理器并调用
public void trackUseCase(Class<?> cl){
  //通过反射查找@UseCase标记
  for(Method m:cl.getDeclaredMethods()){
    //getAnnotation获取指定类型注解对象
    UseCase uc = m.getAnnotation(UseCase.class);
    if(uc !=null){
      "Found Use Case "+uc.id+uc.description();
    }
  }
}
trackUseCase(PassWordUtils.class)

注解元素:

1,所有基本类型(int,float,boolean等)
2,String
3,Class
4,enum
5,Annotation
6,以上类型的数组

默认值限制

元素不能有不确定的值,即必须有默认值,要么在使用注解时提供元素的值。对于非基本类型的元素不能以null作为值。如需表示null可以自己定义-1或者""作为替代

相关文章

  • 六、注解

    基本注解: @Override:覆盖超类方法@Deprecated:一般作为过时方法标记@SuppressWarn...

  • 17、spring-AOP-注解

    六、基于@Aspect注解编程(重点) 1、说明 Spring 使用了和AspectJ 一样的注解并使用Aspec...

  • Spring切面编程(AOP)-记录管理系统操作日志

    一、注解类 二、注解使用类 三、AOP拦截类 四、MQ记录操作日志 五、操作日志记录表 六、HttpServlet...

  • @RequestMapping

    @RequestMapping RequestMapping注解六个属性 1、 value, method; va...

  • MyBatis之使用注解开发

    六、使用注解开发 目录:面向接口编程、使用注解开发、CRUD、Lombok 1.面向接口编程 之前都学过面向对象编...

  • 注解学习笔记

    什么是注解注解分类注解作用分类 元注解 Java内置注解 自定义注解自定义注解实现及使用编译时注解注解处理器注解处...

  • 注解与反射

    注解 声明一个注解类型 元注解 在定义注解时,注解类也能够使用其他的注解声明。对注解类型进行注解的注解类,我们称之...

  • 1.8 Java 注解annotation

    1.1 注解声明 Java注解Annotation,有声明注解和元注解 元注解:Java提供的元注解,所谓元注解就...

  • 注解的使用

    元注解 注解 注解本质就是接口: 元注解:修饰注解的注解 自定义注解 Text.java FruitName.ja...

  • 注解

    Java注解 注解 元注解 自定义注解 元注解:负责注解其他注解 共有4个标准的meta-annotation类型...

网友评论

      本文标题:六、注解

      本文链接:https://www.haomeiwen.com/subject/wxpvyrtx.html