java注解与反射01_注解

超、凢脫俗 2022-12-07 11:55 383阅读 0赞

java注解与反射01_注解


注解

内置注解:

  1. @Override
  2. 定义在java.lang.Override中,声明该方法重写了超类中的方法
  3. @Deprecated
  4. 定义在java.lang.Deprecated中,可修饰方法、属性、类。
  5. 表示不鼓励,不推荐使用该元素,通常认为它很危险或已过时,存在更好的选择。
  6. @SuppressWarnings
  7. 定义在java.lang.SuppressWarnings中,用来抑制编译时的警告信息,比如变量未使用的警告
  8. 该注解需要添加参数:
  9. 抑制所有类型的警告:@SuppressWarnings("all")
  10. 抑制单类型的警告:@SuppressWarnings("unchecked")
  11. 抑制多类型的警告:@SuppressWarnings(value={ "unchecked","deprecation"})

元注解(负责解释其他注解的注解):

  1. @Target
  2. 描述注解的使用范围
  3. @Retention
  4. 表示需要在什么级别保存该注释信息,用于描述注解的生命周期
  5. (SOURCE < CLASS < RUNTIME)
  6. @Documented
  7. 说明该注解将被包含在javadoc
  8. @Inherited
  9. 说明子类可以继承父类中的该注解

自定义注解示例:

  1. package com.blu.demo5;
  2. import java.lang.annotation.Documented;
  3. import java.lang.annotation.ElementType;
  4. import java.lang.annotation.Inherited;
  5. import java.lang.annotation.Retention;
  6. import java.lang.annotation.RetentionPolicy;
  7. import java.lang.annotation.Target;
  8. /** * @Target 描述注解的可用范围,METHOD表示方法上可用,TYPE表示类、接口或enum上可用 * @Retention 描述注解的生命周期,RUNTIME表示在运行时有效 * @Documented 表示该注解将生成在javadoc文件中 * @Inherited 表示子类可以继承父类的注解 */
  9. @Target(value= { ElementType.METHOD,ElementType.TYPE})
  10. @Retention(value=RetentionPolicy.RUNTIME)
  11. @Documented
  12. @Inherited
  13. public @interface BLU {
  14. //定义注解的参数:参数类型 参数名();
  15. //如果只有一个参数,建议用value命名,使用时可以省略value=的写法
  16. String name();
  17. //定义参数并指定默认值,如果不指定默认值,使用时必须显式赋值
  18. int age() default 22;
  19. String[] hobbys();
  20. }

使用注解示例:

  1. package com.blu.demo5;
  2. public class Test {
  3. @BLU(name="blu",hobbys= { "sleeping","eatting","thinking"})
  4. public void test() {
  5. }
  6. }

发表评论

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

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

相关阅读

    相关 反射注解

    反射与注解 一、反射 1. 使用反射机制可以动态的获取当前class的信息,比如方法的信息、注解信息、方法的参数、属性 2. 反射目的:方便开发者对框架的拓展,

    相关 JAVA反射注解

    JAVA反射与注解 前言 现在在我们构建自己或公司的项目中,或多或少都会依赖几个流行比较屌的第三方库,比如:Butter Knife、Retrofit 2、Dagge