自定义注解

Java中注解学习系列教程-6 excel导出优化plush版

在上一篇文章中,我们实现了了自定义注解导出excel及对date类型和枚举类型进行处理。虽然效果是出来了,但是还是有问题的。问题分析:1:在处理date类型及枚举类型的时候,很麻烦,需要好几个属性配合这使用。如果忘了其中的一个就会导致错。如下图:还记的在《Java中注解学习系列教程-3》中我们知道,自定义注解的成员属性还可以是一种特殊的类型:Annotation的。也就是在注解中使用注解。所以我们

自定义注解的成员支持注解类型,可以嵌套注解。把散落的多个配置封装为内嵌注解:EnumCode2Description封装枚举类clazz、方法名methodName和参数类型methodArgClass;myDateFormat2Pattern封装pattern格式和isDateFormate开关。ExcelAnnotation只需声明这两个注解成员,字段上一次配置即可完成,避免多成员配合时漏写出错。

  • 注解成员类型包含注解,因此支持注解中嵌套注解
  • EnumCode2Description内嵌注解封装枚举转换的三要素
  • myDateFormat2Pattern封装pattern与是否格式化标志
  • 外层注解以内嵌注解为成员,字段上一次配置完成
  • 封装后避免多个属性配合使用时漏写导致的错误

在上一篇文章中,我们实现了了自定义注解导出excel及对date类型和枚举类型进行处理。虽然效果是出来了,但是还是有问题的。

问题分析:

1:在处理date类型及枚举类型的时候,很麻烦,需要好几个属性配合这使用。如果忘了其中的一个就会导致错。如下图:

941b76aaa208cbd5ae21b1657c4f75cd.png

还记的在《Java中注解学习系列教程-3》中我们知道,自定义注解的成员属性还可以是一种特殊的类型:Annotation的。也就是在注解中使用注解。

所以我们根据这个特性来处理:

将日期类型转换及枚举类转换封装到两个不同的注解中。

一:封装枚举类的注解

1.1:在我们自定义excel解析的注解ExcelAnnotation类中定义解析枚举类的注解。如下图:

/**
 * 声明枚举类解析对象
 * @return
 */
public abstract  EnumCode2Description[] EnumCode2Description() default {};


/**
 * 枚举类 co

原创不易,完成人机校验,阅读全文

常见问题

Java注解里可以再放注解吗?

可以。注解成员支持注解类型,可把一组相关配置定义成内嵌注解,再作为外层注解的成员使用,实现配置的模块化封装。

为什么要用嵌套注解封装Excel导出配置?

日期格式化和枚举转换各需多个成员配合,漏写即错,封装成EnumCode2Description和myDateFormat2Pattern后一次配置即可,不易遗漏。

相关推荐