java注解之注解的使用和定义

1.自定义注解格式

定义注解:使用@interface.
------------------------------------------------------------------
@Retention(设置存在的时期)
@Target(设置贴在哪些元素之上)
public  @interface  注解名称{
         注解中的成员,抽象方法---->属性.
         数据类型 方法名() default  默认值;
}

2.获取注解的一些常用方法

注解可以贴在类上,方法上,字段上,构造上.
我们可以通过Class,Method,Field,Constructor对象来获取注解对象.
------------------------------------------------------------
Annotation  getAnnotation(Class<A> annotationClass) 如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。 
Annotation[] getAnnotations() :返回该成员上所有的注解.
boolean isAnnotationPresent(Class  annotationClass) :判断当前成员上是否标注了指定的注解.


使用Eclipse新建一个注解VIP




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

@Retention(RetentionPolicy.RUNTIME)  //表示保存的时期为运行时期
@Target(ElementType.TYPE)  //表示只能修饰类,接口,枚举
public @interface VIP {
	//这里面都是抽象方法,方法名跟以前不一样,都是名词
	
	String value();				//这里没有给默认值,那么在使用的时候就必须给值,相当于是给方法实现
	int age() default 18;		//还可以给默认值,给了默认值在使用的时候就可以不用给值
	String[] favs() default {"java","js"};  //数据类型可以是数组
}


//测试使用我们自定义的注解VIP
//@VIP(value="杨哥")//注意:方法名称是value的话,而且只写一个的话,可以不用写,看下面
@VIP("杨哥")
class Demo{
	
}

@VIP(value="杨哥",age=19,favs={"c"})//这里给了值之后,default的值就不起作用了
class Demo2{
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值