我使用opencsv创建CsvToBean
这样的:OpenCSV - CsvReaderNullFieldIndicator似乎没有什么区别
CsvToBean<AccountBean> csvToBean = new CsvToBeanBuilder<AccountBean>(new InputStreamReader(inputStream))
.withFieldAsNull(CSVReaderNullFieldIndicator.NEITHER)
.withType(AccountBean.class)
.build();
这是我AccountBean
:
public class AccountBean extends BeanBase<Account>
{
@CsvBindByName(column = "Id", required = true)
public String salesforceId;
@CsvBindByName(column = "OwnerId", required = true)
public String ownerId;
@CsvBindByName(column = "Name", required = true)
public String name;
// billing address
@CsvBindByName(column = "BillingStreet")
String billingStreet;
@CsvBindByName(column = "BillingCity")
String billingCity;
@CsvBindByName(column = "BillingState")
String billingState;
@CsvBindByName(column = "BillingPostalCode")
String billingPostcode;
@CsvBindByName(column = "BillingCountry")
String billingCountry;
}
的问题是与地址字段 - 如果有空白字段,则它们始终为空,无论我将哪个CSVReaderNullFieldIndicator
值传递给.withFieldAsNull()
。
我的csv文件有双引号来表示一个空字段,所以使用CSVReaderNullFieldIndicator.NEITHER(这是默认情况下)应该产生一个空字符串。
这是导致问题,因为我将空值保存到我的数据存储,然后它在稍后导致NullPointerExceptions。
我做错了什么?