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

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

问题分析:

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

3ba53e39931123aae0ff8cb4a7ceafa8.png

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

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

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

一:封装枚举类的注解

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

/**

* 声明枚举类解析对象

* @return

*/

public abstract EnumCode2Description[] EnumCode2Description() default {};

/**

* 枚举类 code转 description

*/

@Retention(RetentionPolicy.RUNTIME)

@Target( {})

public @interface EnumCode2Description{

/**

* 调用枚举列的方法名称

* @return

*/

public abstract String methodName();

/**

* 调用枚举类方法的参数

* @return

*/

public abstract Class methodArgClass() default Integer.class;

/**

* 枚举类

* @return

*/

public abstract Class clazz();

}

912fbb1e265ce074b017b56eb010b985.png

58e0fdca1a613182c13b19668f5e02f1.png

1.2:在实体对象中使用该注解

7b068ebb6766b24a9479d63ba82c1300.png

1.3:解析注解中处理

2bbd0d32acdd208c02c42c61091b3f27.png

二:日期格式化封装

2.1:在自定义注解中定义日期格式注解

/*** 声明解析日期封装对象* @return*/public abstract myDateFormat2Pattern[] myDateFormat2Pattern() default {};/*** 日期格式化-封装注解*/@Retention(RetentionPolicy.RUNTIME)@Target({})public @interface myDateFormat2Pattern{public abstract String pattern() ;public abstract boolean isDateFormate() ;}

287b752db548662bdbfdf1988f4c99ee.png

2.2:定义格式对象为成员属性

2.3:使用封装后的日期注解

5a92901e7f1400b7b868cc604b6298d8.png

2.4:解析封装的日期注解

代码以放git上了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值