gpt4 book ai didi

java - 无法使用 OpenCSV 将 JavaBeans 写入 CSV

转载 作者:行者123 更新时间:2023-12-05 05:19:22 27 4
gpt4 key购买 nike

我正在尝试使用 OpenCSV 将一些数据写入 CSV 文件。但是,当我尝试存储数据时,我得到一个 CsvBeanIntrospectionException,然后是一个 NoSuchMethodException: Unknown property 'Email' on class 'class SubscriberBean'

这是我的 JavaBean 类的代码:

import com.opencsv.bean.CsvBindByName;

import java.io.Serializable;

public class SubscriberBean implements Serializable {

@CsvBindByName
String Email;

@CsvBindByName
String Name;

public SubscriberBean() {}

public SubscriberBean(String email, String name) {
this.Email = email;
this.Name = name;
}

public String getName() {
return Name;
}

public void setName(String name) {
Name = name;
}

public String getEmail() {
return Email;
}

public void setEmail(String email) {
Email = email;
}

@Override
public String toString() {
return "SubscriberBean [" + "Email=" + Email + ", Name=" + Name + ']';
}

public Boolean isEmpty() {
return (this.Name.equals("") || this.Email.equals("") || this.Name == null || this.Email == null);
}

以及我如何尝试将数据存储在我的 csv 文件中的代码:

List<SubscriberBean>  lsb = new ArrayList<SubscriberBean>();
.
.
.

try {
Writer writer = new FileWriter("test.csv");
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer).build();

beanToCsv.write(lsb);
writer.close();
} catch (CsvDataTypeMismatchException e) {
e.printStackTrace();
} catch (CsvRequiredFieldEmptyException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

我检查了 JavaBean 类,它看起来不错。 CSV 代码与 opencsv 网站上提供的示例几乎相同。

最佳答案

快到了 ;)

apache beanutils 期望您的字段以小写字母开头。例如。 email,不是Email等。这是固定的SubscriberBean:

public class SubscriberBean implements Serializable {

@CsvBindByName
String email;

@CsvBindByName
String name;

public SubscriberBean() {
}

public SubscriberBean(String email, String name) {
this.email = email;
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

// ...

}

请注意,由于小写字段,我不得不稍微更改 setter 。我添加了 this 引用:this.email = email;

关于java - 无法使用 OpenCSV 将 JavaBeans 写入 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46323962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com