【发布时间】:2011-04-30 15:55:03
【问题描述】:
我们正在使用 OpenCSV 解析 CSV 文件,并使用 CsvToBean 类将其值直接绑定到模型对象(OpenJPA 实体 bean)。
但是,问题是 - CSV 中有一些值(显然)被解析为 Strings,但应该设置在 Date 属性中,所以基本上 CsvToBean 类在尝试动态调用写入方法时会死掉(即,它尝试使用原始字符串值设置 Date 属性)。
OpenCSV 中是否有任何工具可以让我指定每列应映射到哪种类型?如果没有,您有什么建议要扩展/重新实现什么类以促进这一点?检查 /test/au/com/bytecode/opencsv/bean/ 目录下 OpenCSV 源代码分发中的其他可用策略让我无法得出结论。
我想我可以摆弄Date 属性设置器并使其成为一个通用方法,它将获取作为参数传递的类型,并尝试将传递的值解析为Date if它已经不是Date,但是....我们正在使用持久性注释实体,我不希望以后看到这个“setter-hack”让我们大吃一惊,因为 OpenJPA Enhancer 突然不喜欢通用 setter。
我已经为此苦恼了几个小时 - 我可能通过使用反射和编写自己的 bean 绑定逻辑来解决问题,但我讨厌重新发明轮子并有一种感觉/希望这可以在现有的 OpenCSV 框架中轻松完成。
如果需要,我可以发布一些代码,但真的没什么可看的。
有什么想法吗?谢谢。
【问题讨论】: