opencsv未将值映射到javabean

opencsv未将值映射到javabean,java,csv,javabeans,Java,Csv,Javabeans,我是OpenCSV新手,我正在尝试解析REST服务中接收到的CSV文件 这是我的代码: CSVReader csvReader = new CSVReader(new InputStreamReader(csv), ';', CSVParser.DEFAULT_QUOTE_CHARACTER); HeaderColumnNameTranslateMappingStrategy<TesteBean> strategy = new HeaderColumnNameTra

我是OpenCSV新手,我正在尝试解析REST服务中接收到的CSV文件

这是我的代码:

    CSVReader csvReader = new CSVReader(new InputStreamReader(csv), ';', CSVParser.DEFAULT_QUOTE_CHARACTER);

    HeaderColumnNameTranslateMappingStrategy<TesteBean> strategy = new HeaderColumnNameTranslateMappingStrategy<>();
    Map<String, String> columnMap = new HashMap<>();
    columnMap.put("NOME", "nome");
    columnMap.put("VALOR", "valor");
    strategy.setColumnMapping(columnMap);
    strategy.setType(TesteBean.class);
    CsvToBean<TesteBean> csvToBean = new CsvToBean<>();
    List<TesteBean> beanList = csvToBean.parse(strategy, csvReader);
    for (TesteBean bean : beanList) {
        System.out.println(bean.getNome());
        System.out.println(bean.getValor());
    }

    List<String[]> rows = csvReader.readAll();
    System.out.println("******* Below this, works fine and prints the values!!");
    for (String[] line : rows) {

        System.out.println("Linha:");
        for (int i = 0; i < line.length; i++) {
            System.out.println(line[i]);
        }
    }

    csvReader.close();
}

另外,这里是我的CSV文件:

诺姆;英勇
客户;勇敢的客户
菲南西拉;金融勇气

但当我检查beanList变量中的值时,它们都是空的

有什么想法吗?
非常感谢

变量是什么类型的
csv
?InputStream?我刚刚试着在上面的代码上运行了一个测试,效果很好。
csvReader.readAll()
行不起作用,但这并不奇怪,因为它不是逗号的默认分隔字符。我前面的评论的补充:readAll()仅在读取器在调用readAll()之前没有读取输入时才起作用。在我评论了第一种方法之后,它运行得很好。所以,这两种方法都可以正常工作:)是的..csv变量是一个InputStream…但是前两个输出命令打印了值?在这里,它们不…我只得到空值…这两种方法都有效。我已经尝试过这两种方法,它们都可以工作,要么填充bean,要么读取所有行作为字符串数组。与上面描述的输入和代码完全相同。变量
csv
是什么类型?InputStream?我刚刚试着在上面的代码上运行了一个测试,效果很好。
csvReader.readAll()
行不起作用,但这并不奇怪,因为它不是逗号的默认分隔字符。我前面的评论的补充:readAll()仅在读取器在调用readAll()之前没有读取输入时才起作用。在我评论了第一种方法之后,它运行得很好。所以,这两种方法都可以正常工作:)是的..csv变量是一个InputStream…但是前两个输出命令打印了值?在这里,它们不…我只得到空值…这两种方法都有效。我已经尝试过这两种方法,它们都可以工作,要么填充bean,要么读取所有行作为字符串数组。使用上面描述的输入和代码。
public class TesteBean {

@CsvBind
private String valor;

@CsvBind
private String nome;

public String getValor() {
    return valor;
}

public String getNome() {
    return nome;
}

public void setValor(String valor) {
    this.valor = valor;
}

public void setNome(String nome) {
    this.nome = nome;
}