Hat mir dabei die Haare gerissen! Es gibt zwei Daten in einer Textdatei. Ich versuchte, sie zurückzuholen, aber ich unten Fehlerjava.util.ArrayList kann nicht in [Ljava.lang.Object umgewandelt werden
########## Error with java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.Object; ##########
Size 1
-Code
try {
File file = new File(filePath + "ABC.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
List list = new ArrayList();
try {
while ((st = br.readLine()) != null) {
String id = st.substring(92, 100);
try {
list.add(getDetail(id));
} catch (Exception e) {
e.printStackTrace();
}
for (Object[] o : (List<Object[]>) list) {
Details x = new Details();
x.setType(o[0].toString());
....
}
}
br.close();
} catch (Exception ex) {
logger.printError(Reader.class, "Error with " + ex);
}
logger.printInfo(Reader.class, "Size " + list.size());
} catch (IOException ex) {
ex.printStackTrace();
}
Abfrage
public List getDetail(int id){
StringBuilder bf = new StringBuilder();
bf.append("SELECT ");
bf.append("'ABC', ");
....
return em.createQuery(bf.toString()) .getResultList();
}
bei hier für mehr als 1 Stunde stucked worden. Jede Hilfe oder Beratung wäre sehr willkommen.
Nun ja, Sie versuchen, eine 'list' zu einem' Object [] 'zu werfen. Das wird nicht funktionieren - es ist nicht klar, warum Sie erwartet haben, dass es funktioniert. Um es anders auszudrücken - wenn man den gesamten * äußeren * Listenteil ignoriert, versucht man etwas wie "Objekt [] o = (Objekt []) getDetail (id);" zu schreiben. Würdest du erwarten, dass * das * funktioniert? (Es ist auch sehr unklar, warum Sie bei jeder Iteration Ihrer While-Schleife über die Liste iterieren ...) –
@JonSkeet Wie kann ich das lösen? – Tony
Sie haben uns nicht gesagt, was Sie vorhaben, also können wir Ihnen nicht sagen, wie wir es lösen sollen - wir können Ihnen nur sagen, warum Sie das Problem bekommen, das Sie bekommen. (Sie haben uns nicht gezeigt, wie Sie versuchen, "o" innerhalb Ihrer Schleife zu verwenden.) –