JAVA注解基础

注解

* 注解在开发中常被我们利用到反射机制中,辅助反射机制做更多灵活的操作

* 注解在如今JAVA流行的框架中被大量的营养,简化了以前繁琐的配置工作·

* 注解可以在:

* 类上,属性上,方法上,构造器上,以及参数上使用

* 可以通过java内置的注解@Target来说明当前注解可以应用的位置,对应的值被定义在ElementType上

* 例如:

@Target(ElementType.TYPE) 注解只能被用于类上

@Target({ElementType.TYPE,ElementType.METHOD}) 注解只能被用于类上或方法上

* 当可以用于多个位置时,需要定义成数组的方式包含所有ElementType的值,即"{}"包含

*** @Retention注解:用于标注当前注解的保留级别,有三个选项**

*** RetentionPolicy.SOURCE 注解仅保留在源码中**

*** RetentionPolicy.CLASS 注解保留在字节码中,但是反射机制不能调用**

*** RetentionPolicy.RUNTIME 注解保留在字节码中,并且可以被反射机制所使用**

*** 当不指定@Retention时,默认的保留级别为CLASS,因此我们通常都需要明确指出保留级别为RUNTIME**

*/

@Target({ElementType.TYPE,ElementType.FIELD})

@Retention(RetentionPolicy.RUNTIME)

public @interface AutoRunClass {

}

/**

*** 注解可以定义参数**

*/

@Target(ElementType.METHOD)

@Retention(RetentionPolicy.RUNTIME)

public @interface AutoRunMethod {

/*

​ 定义参数的格式为:

​ 格式:类型 参数名() [default 默认值]

​ 注:default可选,用于为当前参数定义默认值。如果不指定,则使用注解时必须为此参数赋值。

​ 使用注解传参时格式:

​ @注解名(参数名1=参数值1[,参数名2=参数值2,…])

​ 如果注解@AutoRunMethod只有一个参数,且参数名为num时,那么使用时格式如下:

​ @AutoRunMethod(num=1)

​ =重点=

​ 如果注解中只有一个参数,参数名建议选取value,这样的好处是,使用时可以不指定参数名,如:

​ @AutoRunMethod(1)

​ 如果指定了默认值,则可以不指定参数,例如:

​ @AutoRunMethod() 此时注解中参数的使用default的默认值

*/

//为注解定义一个int型的参数

// int num() default 1;//一个参数时,参数名不建议选取value以外的名字。

int value() default 1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值