java自定义注解

    概要:由于java提供的注解功能不能满足项目的需要,需要更具具体的内容自定义需要的注解。

    java提供了4中注解,专门负责新注解的创建

1、@Target

@Target:
  表示该注解可以用于什么地方,可能的ElementType参数有:
  CONSTRUCTOR:构造器的声明
  FIELD:域声明(包括enum实例)
  LOCAL_VARIABLE:局部变量声明
  METHOD:方法声明
  PACKAGE:包声明
  PARAMETER:参数声明
  TYPE:类、接口(包括注解类型)或enum声明

2、@Retention

@Retention:
  表示需要在什么级别保存该注解信息。可选的RetentionPolicy参数包括:
  SOURCE:注解将被编译器丢弃
  CLASS:注解在class文件中可用,但会被VM丢弃
  RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息

3、@Document

将注解包含在Javadoc中

4、@Inherited

允许子类继承父类中的注解

    我们自己新建一个注解,步骤如下:

    1、新建注解类

@Retention(RetentionPolicy.RUNTIME)  
@Target(ElementType.FIELD) 
public @interface IColumn {、
    //字段是否可以为空
    boolean isNullable() default true;
    //字段描述
    String description() default "";
    //是否允许特殊字符,true,允许,false,不允许
    boolean isSpecialCharCheck() default false;
}

    2、使用注解

@IColumn(isNullable = false,description = "测试字段",isSpecialCharCheck = true)
private String testField;

    经过上述两个步骤处理后,在运行的时候可以通过Field.isAnnotationPresent(IColumn.class)判断是否存在该注解,通过Field.getAnnotation(IColumn.class)获取到IColumn对象,进而对注解类里面的对象iColumn.isNullable()进行调用处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫雪群飘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值