34/365 java 注解 Annotation

1.Annotation 注解

  • 不是代码,对代码做出解释
  • 其他程序可以通过反射来机制读取该程序的注解

格式: @name  或者 @name(parameter="value")

2.内置注解

定义在java.lang这个包中

3. meta-annotation  元注解

用于解释注解的注解,对一般的注解提供提供说明

常见类型:

@Target:表明注解可以用在哪些地方(方法,类……)

@Retention:表明注解的有效范围(在源码/生成class/运行时有效)

   范围大小:Runtime>Class>Source

@Document:表示该注解会包含在javadoc文档中

@Inherited:表示子类可以继承父类的该注解

4.注解内参数

注解中可以有参数,参数格式为:

  • 参数类型 参数名字();
  • 参数可以有默认值, 参数类型 参数名字() default 默认值;

如果参数,没有默认值,则必须在使用注解时显示给出参数值,格式为:

  • @注解名(参数名字 = 参数值)

参数可以不按顺序写

当注解只有一个参数,且参数名字为value时,使用注解时可以省略参数名,格式为:

  • @注解名(参数值)

代码示例:

package AnnotationTest;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

public class A2 {

    @MyAnnotation2(num=8)
    void test(){

    }

    @MyAnnatation3(99)
    void test2(){

    }
}

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    String name() default "apple";
    int num();
    boolean flag() default false;
}

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnatation3{
   int value();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值