我创建了一个链接列表对象,如下所示
importBuffer = new BufferedReader(new FileReader(importcsvFile));
while ((line = importBuffer.readLine()) != null) {
// use comma as separator
String[] importedFile = line.split(cvsSplitBy); //cap,comune,provincia,stato
System.out.println("Codice Azienda " + importedFile[0] + " , Codice Cliente=" + importedFile[1] + " , Regione Sociale=" + importedFile[2] + " , Indrizzo=" + importedFile[3] + " , comune=" + importedFile[4] + " , provincia=" + importedFile[5] + " , stato=" + importedFile[6] +"]");
counter++;
PublicDefinition.importList.add(importBuffer.toString());
List customers = select.select(importedFile[0],importedFile[1], importedFile[3]);
if(!customers.isEmpty())
{
System.out.println("selected Customer : " + customers.size());
buffureList = customers;
Object a=List.class.cast(customers);
PublicDefinition.testingList.add(buffureList.toString());
System.out.println("selected Customer : " + PublicDefinition.importList.get(0));
System.out.println("selected Customer : " + PublicDefinition.testingList.getFirst());
updateCustomer = customers;
if(customers.get(0)==importedFile[0])
System.out.println("Matched Codice Azienda");
select.updateTable(importedFile[1], importedFile[3], "10.34", "11.40"); //String CodiceCliente, String indrizzo, String latitude, String longitute
}
}
当我尝试使用
访问链表的元素时System.out.println("selected Customer : " + PublicDefinition.importList.get(0));
我得到了输出:
selected Customer : java.io.BufferedReader@420dc55b
我认为这是内存引用,但我想检索链表的值
我的选择功能是:
public List<Customer> select(String codiceAzienda, String codiceCliente, String indrizzo) {
return jdbcTemplate.query(
"SELECT * FROM customers WHERE CodiceAzienda= ?",
new Object[] { codiceAzienda},
(rs, rowNum) -> new Customer(rs.getLong("id"),
rs.getString("CodiceAzienda"), rs.getString("Indrizzo"), rs.getString("codice_cliente"), rs.getString("Indrizzo")));
}
答案 0 :(得分:3)
您添加了importBuffer 对象的toString()
值,而不是实际内容。默认的toString()
实现(每个对象都继承自... Object
)返回ClassName@HashCode
。所以你的输出没有错,但输入是。
答案 1 :(得分:1)
继续执行:
PublicDefinition.importList.add(importBuffer.readLine());
而不是:
PublicDefinition.importList.add(importBuffer.toString());
因为您尝试输出缓冲读取器的内容而不是ClassName @Hashcode内容。
答案 2 :(得分:1)
替换
PublicDefinition.importList.add(importBuffer.toString());
与
PublicDefinition.importList.add(importedFile);
您不小心添加了BufferReader
对象的字符串表示形式,而不是那些听起来像您的意图的导入文件列表。