【JavaSE学习补充02】注解

第二部分 注解

第1章 什么是注解

  • 引入:JDK5.0开始。

  • 作用:对程序做出解释,可以被其它程序(编译器)读取。

  • 格式:@注释名,也可以添加参数值,如:

    @SuppressWarnings(value="unchecked")
    
  • 使用位置:package, class, method, field…,可以通过反射访问到此元数据。

第2章 内置注解

  • @Override: 重写另一个超类中的方法声明;
  • @Deprecated: 不推荐程序员使用,但可以使用,或存在更好方式;
  • @SuppressWarnings: 镇压警告,有参数。

第3章 元注解

  • 作用:负责注解其它注解,4个meta-annotation。

  • @Target:注解的适用范围;

    @Target(value = {ElementType.METHOD, ElementType.TYPE})
    
  • @Retention:注解的生命周期(有效的位置)(SOURCE < CLASS < RUNTIME);

    @Retention(value = RetentionPolicy.RUNTIME)
    
  • @Document:该注解生成在Javadoc中;

  • @Inherited:子类可以继承父类的注解。

第4章 自定义注解

  • 使用@interface自定义注解,自动继承java.lang.annotation.Annotation接口;

  • 每一个方法实际上是声明了一个配置参数,该方法的名称为参数名;

  • 返回值类型即为参数类型(基本数据类型、Class、String、enum);

  • 可使用default声明参数的默认值;

  • 只有一个参数时,参数名为value;

  • 注解元素必须有值,经常使用空串或0作为默认值;

  • demo:

    @Target({ElementType.TYPE, ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @interface MyAnnotation2{
        String name() default "";
        int age() default 0;
        int id() default -1;
        
        String[] schools() default {"abc"};
    }
    
    @Target({ElementType.TYPE, ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @interface MyAnnotation3{
        String value();
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值