您好,登錄后才能下訂單哦!
本文是《Java中注解學習系列教程》第四篇文章也是小案例文章。
自定義注解小案例是:使用自定義注解實現(xiàn)excel導出。
Excel導出分析:
有表頭、數(shù)據(jù)值。一般第一行是表頭,從第二行開始就是數(shù)據(jù)了。而且我們可以發(fā)現(xiàn),每個表頭都會對于一列。
如上圖中的。主鍵ID對應的是A列 、姓名對應的是B列、生日對應的是C列、性別對應的是D列。
我們來分析自定義主鍵需要定義哪些?
1:主鍵范圍
2:列對應的中文
3:所在那一列
經(jīng)過分析我們知道,Excel中每一列對應的其實就是對象中的屬性。所有我們知道了:
1:自定義注解Target的范圍是Filed即@Target({ElementType.FIELD})
2:自定義注解的成員變量有一個是中文名稱這個字段。我們?nèi)∶麨椋篠tring ZHName() ;
3:還需要有個成員變量就是指定當前這個屬性或者是中文(表頭)位于哪一列。我們?nèi)∶麨?????String colum();
經(jīng)過上面分析,我們可以得到這個自定義注解具體了。
@Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public?@interface?ExcelAnnotation?{ ????/** ?????*?導出文件的中文名稱 ?????*/ ????String?ZHName()?; ????/** ?????*?導出對應的列 ?????*?A、B、C... ?????*?@return ?????*/ ????String?colum(); ????}
接下來我們創(chuàng)建對象。開始測試:
一:創(chuàng)建POJO對象
創(chuàng)建用戶對象:AnnotationUserPoJo
屬性有:
/** *注解id **/ private?Integer?id; /** *用戶名 **/ private?String?name; /** *性別 **/ private?Integer?Gender;
在需要的字段上使用我們自定義的ExcelAnnotation注解。
具體用法:
/** ?*?主鍵id ?*/ @ExcelAnnotation(ZHName?=?"主鍵ID",?colum?="A"?) private?Integer?id;
編寫Excel工具類:
在這里凱哥就不貼出全碼了,因為工具類中代碼太多。只講重要的。代碼會放在git上的。
我們在解析的時候,先判斷每個自讀是否使用了注解。如使用了注解就進行解析。
三:創(chuàng)建junit測試類:
執(zhí)行test測試。查看結果。
問題分析:
1:如果是date類型的數(shù)據(jù),怎么格式化?在文章剛開始凱哥貼出的圖中,生日是格式化好的
2:枚舉類型。如性別。在文章剛開始凱哥貼出的圖中,性別還是數(shù)字1.而非男或者女。
以上兩個問題怎么解決呢?
凱哥將在下一篇文章中詳細講解。以及工作中常用到的怎么處理。
聲明:本文由凱哥Java系列教程中Java注解講解第四篇文章。
本文出處:http://www.kaigejava.com/article/detail/442
凱哥博客:www.kaigejava.com
凱哥公眾號:凱哥Java(kaigejava)
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。