如何自定义注解

Java注解

注解即注释,也叫元数据。一种代码级别的说明。

它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

元注解

元注解即注解的注解,是放在被定义的一个注解类的前面 ,是对注解一种限制。

这里说说以下两个元注解:
1、 @Retention

Retention的作用是定义被它所注解的注解保留多久,一般有三种策略,定义在 RetentionPolicy 枚举中。

public enum RetentionPolicy {
    SOURCE, //被编译器忽略
    CLASS, //注解将会被保留在class文件中,但运行时并不会被JVM保留。默认为CLASS
    RUNTIME //保留至运行时
}

2、@Target

用来说明被它所注解的注解可以被声明在哪些元素之前。

public enum ElementType {
    TYPE,                //说明该注解只能被声明在一个类前
    FIELD,               //说明该注解只能被声明在一个类的字段前
    METHOD,              //说明该注解只能被声明在一个类的方法前
    PARAMETER,           //说明该注解只能被声明在一个方法参数前
    CONSTRUCTOR,         //说明该注解只能声明在一个类的构造方法前
    LOCAL_VARIABLE,      //说明该注解只能声明在一个局部变量前
    ANNOTATION_TYPE,     //说明该注解只能声明在一个注解类型前
    PACKAGE              //说明该注解只能声明在一个包名前
}

使用方法如下

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Controller{
    public String value() default "";
}

以上这个注解就是SpringMVC中的 @Controller 注解声明,当然了要想如何去使用这个注解就需要配置注解处理机制了,有兴趣的可以去了解一下:http://www.cnblogs.com/xdp-gacl/p/4101727.html

常见注解

1、@Override

当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

2、 @Deprecated

用来表示某个类的属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰。

@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

3、 @SuppressWarnings

用来压制程序中出来的警告。

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    String[] value();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值