gpt4 book ai didi

java - 在 Java 中解析 CSV 文件时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:21 25 4
gpt4 key购买 nike

在此代码中,目的是解析 CSV 文件并将其数据映射到 bean 对象。

ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
strat.setType(Country.class);
String[] columns = new String[] {"countryName", "capital"};
strat.setColumnMapping(columns);

CsvToBean csv = new CsvToBean();

String csvFilename = "C:/Users/user/Desktop/sample.csv";
CSVReader csvReader = new CSVReader(new FileReader(csvFilename));

文件中的列有标题,有时在原始数据下方有附加信息(例如字符串或整数单元格中的数字或单词)。

我在上一个问题中询问了如何忽略此附加信息,并得到了以下代码作为答案:

List<Country> list = new ArrayList<Country>();
String [] row = csvReader.readNext(); //skip header
if(row == null) throw new RuntimeException("File is empty");
row = csvReader.readNext();
String [] nextRow = csvReader.readNext();
while(row != null) {
if(nextRow == null) break; //check what 'row' is last
if("Total:".equalsIgnoreCase(row[1])) break; //check column for special strings

list.add(csv.processLine(strat, row)); <----

row = nextRow;
nextRow = csvReader.readNext();

当我尝试实现此代码时,我在箭头标记的行处遇到了两个错误。

Exception in thread "main" java.lang.Error: Unresolved compilation problems:

The method add(Country) in the type List is not applicable for the arguments (Object)

The method processLine(MappingStrategy, String[]) from the type CsvToBean is not visible

有人知道如何解决这个问题吗?我对 Java 还很陌生。

非常感谢。

最佳答案

The method processLine(MappingStrategy, String[]) from the type CsvToBean is not visible

意味着这个方法必须是可访问的(可能的原因;它是私有(private)的、 protected 或友好的),所以使用 public

The method add(Country) in the type List is not applicable for the arguments (Object)

并且必须返回类型国家,方法签名必须类似于;

public Country processLine(ColumnPositionMappingStrategy strat, String [] row)

关于java - 在 Java 中解析 CSV 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699758/

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