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

来源:互联网 发布:麦子学院 python 彭亮 编辑:程序博客网 时间:2024/06/05 20:12

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{}


原创粉丝点击