在上一篇文章中,我們實(shí)現(xiàn)了了自定義注解導(dǎo)出excel及對date類型和枚舉類型進(jìn)行處理。雖然效果是出來了,但是還是有問題的。
創(chuàng)新互聯(lián)公司專注于思禮企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。思禮網(wǎng)站建設(shè)公司,為思禮等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
問題分析:
1:在處理date類型及枚舉類型的時(shí)候,很麻煩,需要好幾個屬性配合這使用。如果忘了其中的一個就會導(dǎo)致錯。如下圖:

還記的在《Java中注解學(xué)習(xí)系列教程-3》中我們知道,自定義注解的成員屬性還可以是一種特殊的類型:Annotation的。也就是在注解中使用注解。
所以我們根據(jù)這個特性來處理:
將日期類型轉(zhuǎn)換及枚舉類轉(zhuǎn)換封裝到兩個不同的注解中。
一:封裝枚舉類的注解
1.1:在我們自定義excel解析的注解ExcelAnnotation類中定義解析枚舉類的注解。如下圖:
/**
?*?聲明枚舉類解析對象
?*?@return
?*/
public?abstract??EnumCode2Description[]?EnumCode2Description()?default?{};
/**
?*?枚舉類?code轉(zhuǎn)?description
?*/
@Retention(RetentionPolicy.RUNTIME)
@Target(?{})
public?@interface?EnumCode2Description{
????/**
?????*??調(diào)用枚舉列的方法名稱
?????*?@return
?????*/
????public?abstract?String?methodName();
????/**
?????*?調(diào)用枚舉類方法的參數(shù)
?????*?@return
?????*/
????public??abstract??Class?methodArgClass()?default?Integer.class;
????/**
?????*?枚舉類
?????*?@return
?????*/
????public??abstract??Class?clazz();
}

1.2:在實(shí)體對象中使用該注解

1.3:解析注解中處理

二:日期格式化封裝
2.1:在自定義注解中定義日期格式注解
/**
?*?聲明解析日期封裝對象
?*?@return
?*/
public?abstract??myDateFormat2Pattern[]?myDateFormat2Pattern()?default?{};
/**
?*?日期格式化-封裝注解
?*/
@Retention(RetentionPolicy.RUNTIME)
@Target({})
public?@interface??myDateFormat2Pattern{
????public?abstract??String?pattern()?;
????public??abstract??boolean?isDateFormate()?;
}
2.2:定義格式對象為成員屬性

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

2.4:解析封裝的日期注解

代碼以放git上了。
關(guān)注凱哥公眾號:凱哥Java。獲取
聲明:本文是《Java中注解學(xué)習(xí)系列教程》第五篇文章-小案例,使用自定義注解實(shí)現(xiàn)Excel導(dǎo)出優(yōu)化初級階段。
本文出處:http://www.kaigejava.com/article/detail/444
凱哥博客:www.kaigejava.com
凱哥公眾號:凱哥Java(kaigejava)
文章題目:Java中注解學(xué)習(xí)系列教程-6excel導(dǎo)出優(yōu)化plush版
文章路徑:http://www.chinadenli.net/article6/gcccig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、自適應(yīng)網(wǎng)站、、服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)