使用java注解能够实现一些共通的功能,假定有多种格式的csv文件,编号,分节符,头顶部个数之类的定义不尽相同,但是我们想统一的解决她们,那么就需要一个共通的方式。
也许有人说,无需注解,仅用个相通实体类不就行了吗?可是注解让编码更雅致,并且如果你提升其他一些要求,例如其他csv格式时,只需加好多个注解就能轻轻松松的扩大你功能。
那样看代码吧。
1. 界定注解
界定一个csv格式的注解,包括文件信息分节符,编号这些信息内容。假如项目需求增加,还可以继续加上功能,例如回车符这类。
2. 应用注解
这儿为了能可扩展性先界定了一个空插口。必要时拓展就完成该插口。
public interface CSVFormat { }
FreeTextCSVFormat完成了CSVFormat接口,并用了FileFormat的注解,分节符,编号等都采用初始值,并没开展特殊的设定。
3. 解决注解,读取文档中的一行数据
依据注解设置,读取一行数据。不论什么编号,或是回车符,都是采用通用的readDataLine()方式。
4. 功能拓展-读取数据信息,并装封到类中
刚刚仅仅读取一行,回到字符串数组。可是有时候我们要把数据封装到类里,例如上述FreeTextCSVFormat类。那可以再定义一个文件内容的注解。
FreeTextCSVFormat,加上FileColumn注解。
最终,可以用反射面获得columnIdex,然后把读取内容封装形式进来。实际完成也不贴上去了。
结束语
应用注解可以提升可扩展性,例如加上一种新的csv款式,并不一定改动读取文件信息方式,只需加上应用注解的类就行了。这么做可以更加雅致,还能帮你掌握java反射,终究经常用架构的注解许多,自己写的机遇其实很少。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。