zoukankan      html  css  js  c++  java
  • java注解

    1.简单理解

    • 给数据或者代码加上属性

    2.简单使用

    定义注解

    • 最常用的方式
        @Retention(RetentionPolicy.RUNTIME)
        @Target(ElementType.TYPE)
        public @interface CommonAnnotation {
      
            /**
            * 名字
            * @return
            */
            String name();
        }     
      
      • @Retention(RetentionPolicy.RUNTIME),直接cv大法,表示我们运行的时候注解还在,很少需要使用到其他两种情况
      • @Target(ElementType.METHOD),直接cv大法,表示这个注解将用于注解方法,编译器会帮我们检查,如果报错就去添加或者替换成我们需要的类型
    • 定义一个注解
      • 关键字: @interface
      • 元注解:@Retention、@Target、@Inherited、@Documented
      • 字段,写成一个抽象方法的形式

    元注解

    • @Retention
      • 用来指定注解的存活期
      • 值:SOURCE、CLASS、RUNTIME
    • 分别表示:
      • source 这个注解除了源文件会存在就没了、
      • class 这个注解比上个命长点,能扛到编译后,运行时就没了、
      • runtime 这个注解会存活到运行时,命最长
    • @Target
      • 用来说明这个注解可以用来注释哪些地方,例如:类、方法、字段、参数、注解等等
      • 很简单,根据需求来就好了
      • 那么有个问题,如果我声明用于方法,但是我把注解写到类上会报错吗?
        实践证明,编译器会帮我报错出来,所以,乱写就行了,有报错再纠错
    • @Inherited
      • 一般用来那些修饰类的注解,那么他的子类可以继承这个注解
      • 注解继承说得这个,注解A用这个注解(@Inherited)标识了,那么类ObjectA表示了注解A,类ObjectB直接继承ObjectA就可以获得注解A
      • 仅此而已,也是很有用的
    • @Documented
      • 标识哪些类在生成文档时,能上文档

    标准注解

    • @Override
      重写 、覆盖某个方法
    • @Deprecated
      方法或者类废弃了
    • @SuppressWarnings
      标识这个代码安全,不要给我警告个不停

    todo

    • spring的组合注解
    • 阅读《java编程思想》的相关章节
    • 阅读《java核心卷》的相关章节
    • 列举例子
    • 写出自己的理解
    • 了解并写个类似lombok的demo
    • 根据@Documented生成一个jdk文档来看看

    参考文档

  • 相关阅读:
    JZOJ6096 森林
    HIT暑期集训 二分图匹配
    HIT暑期集训 网络流
    HIT暑期集训 tarjan,dfs序
    HIT暑期集训 图论基础
    HIT暑期集训 AC自动机
    HIT第二周 周测补题
    HIT暑期集训 字符串
    HIT暑期集训 动态规划
    HIT暑期集训 平衡树
  • 原文地址:https://www.cnblogs.com/cgengwei/p/14044752.html
Copyright © 2011-2022 走看看