首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCSV CSV到JavaBean

OpenCSV CSV到JavaBean
EN

Stack Overflow用户
提问于 2010-11-12 14:05:31
回答 2查看 7.6K关注 0票数 1

如果我有一个具有非原始公共成员的类,并且我想用OpenCSV从CSV文件中填充它们,我如何做到这一点?我注意到OpenCSV有一些与PropertyDescriptors相关的受保护成员

假设我有一个Person类,它有一个地址成员,我的CSV文件包含每个人的详细信息,包括他们的地址。

代码语言:javascript
复制
Person{

private String name;

private Address al

public void setAddress(Address a){..}
public void setName(String name){..}

}

Addess{

private String line1;
private String line2;
private String postCode;

.
.
.

}

CSV文件:

代码语言:javascript
复制
NAME        | ADDR1     | ADDR2     | PCODE ...
John Smith  |Some place | Some town | NW234

谢谢,

  • 一个
EN

回答 2

Stack Overflow用户

发布于 2010-11-12 14:21:17

您签出以下常见问题了吗?在我看来这就是你想要做的。不过,我可能弄错了。

有办法将我的CSV文件绑定到Javabeans列表吗? 是的有。 Kyle添加了一组新的类,允许您根据列名、列位置或自定义映射策略将CSV文件绑定到JavaBeans列表。您可以在au.com.bytecode.opencsv.bean包中找到新的类。下面是如何根据CSV文件中的字段位置映射到java的方法:

代码语言:javascript
复制
ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy(); 
strat.setType(YourOrderBean.class); 
String[] columns = new String[] {"name", "orderNumber", "id"}; // the fields to bind do in your JavaBean 
strat.setColumnMapping(columns); 
CsvToBean csv = new CsvToBean(); 
List list = csv.parse(strat, yourReader);
票数 5
EN

Stack Overflow用户

发布于 2012-09-13 21:05:57

我相信你已经很久以前就开始工作了,但是我遇到了同样的情况,有两种方法可以解决这个问题。您可以重写CsvToBean.convertValue或CsvToBean.getPropertyEditor。

更高级的方法可能是重写getPropertyEditor并返回特定对象的自定义PropertyEditor。快速和肮脏的方法是以匿名类形式覆盖convertValue,如下所示:

代码语言:javascript
复制
CsvToBean<MyClass> csvToBean = new CsvToBean<MyClass>(){

    @Override
    protected Object convertValue(String value, PropertyDescriptor prop) throws InstantiationException,IllegalAccessException {

        if (prop.getName().equals("myWhatever")) {
            // return an custom object based on the incoming value
            return new MyWhatever((String)value);
        }

        return super.convertValue(value, prop);
    }
};

这对我来说OpenCSV 2.3很好。祝好运!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4165421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档