java学习笔记_进阶018

注解

注解,或者叫做注释,英文单词是:Annotation

  • 注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件

  • 怎么自定义注解呢?语法格式?
    [修饰符列表]@interface 注解类型名{

    }

  • 注解怎么使用,用在什么地方?

    • 第一:注解使用时的语法格式是
      • @注解类型名
    • 第二:注解可以出现在类上、属性上、方法上、变量上、注解类型上等…
  • JDK内置了哪些注解呢

    • java.lang包下的注释类型
      • Deprecated用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。
        • @Deprecated 表示已过时
        • 这个注解主要是向其它程序员传递一个消息,告知已过时,有更好的解决方案存在
      • Override表示一个方法声明打算重写超类中的另一个方法声明
        • @Override
        • 标志性注解,给编译器做参考
        • 编译器看到方法上有这个注解的时候,编译器会启动检查该方法是否重写了父类的方法。如果没有重写,报错
        • 这个注解只是在编译阶段起作用,和运行期无关、
      • SuppressWarnings 指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。
  • 元注解

    • 什么是元注解?
      • 用来标注“注解类型”的“注解”,称为元注解。
    • 常用的元注解有哪些
      • Target
        • Target是一个元注解,用来标注“注解类型"的”注解“。
        • 这个Target注解用来标注”被标注的注解“可以出现在哪些位置上
        • @Target(ElementType.METHOD):表示”被标注的注解“只能出现在方法上
      • Retention
        • 这是一个元注解,用来标注”注解类型“的”注解“
        • 这个Retention注解用来标注”被标注的注解“最终保存在哪里
        • @Retention(RetentionPolicy.SOURCE):表示该注解只被保留在java源文件中
        • @Retention(RetentionPolicy.CLASS):表示该注解只被保留在class文件中
          - @Retention(RetentionPolicy.RUNTIME):表示该注解被保存在class文件中,并且可以被反射机制所读取
  • 如果一个注解当中有属性,那么必须给属性赋值(除非该属性使用default指定了默认值)

    • eg:
      • @MyAnnotation(属性名=属性值)
    • 如果一个注解的属性的名字是value的话,在使用的时候,该属性名可以省略
  • 注解当中的属性可以是哪一种类型?

    • 属性的类型可以是:byte,short,int,long,float,double,boolean,char,String,class,枚举类型以及以上每一种的数组形式。
  • 注解在开发中的作用

    • 需求
      • 假设有这样一个注解,叫做:@id
        • 这个注解只能出现在类上面,当这个类上有这个注解的时候,要求这个类中把必须有一个int类型 的id属性。如果没有这个属性就报异常。如果有这个属性则正常执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__BC__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值