java 注解: Annotation

java 注解: Annotation

注解
位于源码中,用来修饰程序的元素,但不会对被修饰的对象有直接的影响。
可增加程序的动态性。

普通注解

普通注解:为java代码所用的注解。

  • @Override
  1. 修饰方法,检查该方法是否是父类中继承而来。
  2. 强制该类中的方法必须满足父类中的定义。
  3. 避免代码错乱。

  • @Deprecated
  1. 修饰类、类的元素、包。
  2. 标注该类、元素,包已经被废除。不建议使用。

  • @SuppressWarnings
  1. 可修饰变量、方法、构造函数、类等。
  2. 压住各种警告信息,使得编译器不显示警告。

在这里插入图片描述
3. 其他警告类型:

  • all, 忽略所有警告。
  • cast,忽略类转型警告。
  • serial,忽略实现Serializable接口,没有定义serialversionUID也不警告。
  • 使用Javac -X可以查看当前的编译器可支持哪种类型的警告。

自定义注解

1. 注解编写:

public @interface Test{
}

public @interface Peter{
   int value() default 0;
   int a()     default 1;
   int b()     default 2;
}

2. 注解包括类型:

  • 8种基本数据类型。
  • String.
  • Class.
  • enum类型。
  • 注解类型。
  • 由前面类型注成的数组。

元注解

用来修饰注解的注解。

1. Retention(保留)
用来修饰其他注解存在的范围。

  • @Retention(RetentionPolicy.SOURCE)
    注解只是包含在源码中,不会出现在class中。
  • @Retention(RetentionPolicy.CLASS)
    默认的注解保留方式,注解会保留在.class文件中,但是不会被JVM加载。
  • @Retention(RetentionPolicy.RUNTIME)
    注解会被JVM加载。通常可以结合反射来做一些操作。

2. Target
用来限定目标注解作用于什么位置。

在这里插入图片描述


3. Inherited

  • 让一个类和他的子类都包含这个注解。
  • 即:当一个类使用@Inherited修饰后,继承于该类的子类,也拥有该父类的注解。

4. Repeatable

  • 表示被修饰的注解可以重复使用。
  • 需要定义注解和容器注解。

注解

public @interface RepeatableAnnotation{
    int a() default 0;
    int b() default 0;
    int c() default 0;
}

注解容器

public @interface RepeataleAnnotations{
    RepeatableAnnotation[] value();
}

注解使用

@RepeatableAnnotation(a=1, b=2, c=3)
@RepeatableAnnotation(a=4, b=5, c=6)
public int sum(int a, int b, int c){
    int sum = a + b + c;
    return sum;
}

5. Documented

  • 指明这个注解可以被javadoc工具解析,形成帮助文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值