java.lang.String nicht umgewandelt werden [Ljava.lang.String;
Habe ich Folgendes, und ich bekomme die Fehlermeldung
java.lang.String nicht umgewandelt werden [Ljava.lang.String;
Habe ich das geändert Object[]
zu String[]
da Stand ich vor der nächste Fehler:
java.lang.Objekt kann nicht umgewandelt werden [Ljava.lang.String;
Irgendeine Idee?
private Collection queryStatement(String SelectStatement) {
int colcount = 0;
int rowcount = 0;
int rowcounter = 0;
ArrayList a = new ArrayList();
Query query = getEntityManager().createNativeQuery(SelectStatement);
List<String[]> resultList = (List<String[]>) query.getResultList();
if (!resultList.equals(Collections.emptyList())) {
rowcount = resultList.size();
}
if (rowcount > 0) {
colcount = ((String[]) query.getResultList().get(0)).length;
}
rows = rowcount;
cols = colcount;
String[][] array = new String[rowcount][colcount];
for (String[] obj : resultList) {
String[] record = new String[colcount];
for (int colCounter = 0; colCounter < colcount; colCounter++) {
record[colCounter] = safeValue(obj[colCounter]+"");
}
array[ rowcounter++] = (String[]) record;
}
a.add(array);
return a;
}
Was ist deine select-Anweisung? können Sie die Abfrage schreiben?
Naman WÄHLEN Sie " PASSWD VON WIRTSCHAFTSPRÜFERN WHERE BENUTZERNAME = '1114', Aber als Sie userstand die Abfrage-parameter
Warum sollte das zurückgeben einer
ja, es wird kommen, Liste<String> da in der Abfrage nur eine Spalte PASSWD
Da die Abfrage-parameter (select-Anweisung) ist möglich Rückgabe List(String[])
Naman WÄHLEN Sie " PASSWD VON WIRTSCHAFTSPRÜFERN WHERE BENUTZERNAME = '1114', Aber als Sie userstand die Abfrage-parameter
Warum sollte das zurückgeben einer
List<String[]>
? Wie es aussieht ist es eine Rückkehr List<String>
, daher der Fehler.ja, es wird kommen, Liste<String> da in der Abfrage nur eine Spalte PASSWD
Da die Abfrage-parameter (select-Anweisung) ist möglich Rückgabe List(String[])
InformationsquelleAutor Giorgos | 2016-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler tritt auf, wenn Sie versuchen, werfen einen
String
auf ein array vonString
.Zum Beispiel:
Für mich, Sie diese Fehlermeldung erhalten, weil
query.getResultList()
gibt eineList<String>
oderList<Object>
stattList<String[]>
so dass, wenn Sie versuchen, warf einen Wert alsString[]
Sie erhalten diese Ausnahme.Entsprechend der Javadoc -createNativeQuery(String) liefert ein Ergebnis vom Typ
Object[]
oder ein Ergebnis vom TypObject
wenn es nur eine Spalte in der select-Liste.Ansatz #1
Eine einfache Möglichkeit, es zu beheben, könnte es sein, verlassen Sie sich auf die raw-Typ für das Ergebnis (es ist nicht der eleganteste Ansatz aber die einfachste), dann können Sie später überprüfen Sie den Typ der Inhalt der Liste zu werfen es richtig zu stellen.
Dann zu überprüfen, die Art, können Sie gehen Sie als Nächstes:
Ansatz #2
Sich ein eleganter Weg sein könnte, erstellen Sie eine
POJO
und verwendencreateNativeQuery(String sqlString, Class resultClass)
um Ihre Abfrage zu erzeugen, so wird es automatisch ordnen Sie Ihre Spalten mit den Feldern IhrerPOJO
Ist hier, wie es Aussehen könnte
ja ich meine Liste<String[]> sorry.
die zweite Aussage, die Sie machen
This error occurs ...
ist streng genommen nicht korrekt. Ich denke du meinst so etwas wie: "Dieser Fehler tritt auf, wenn Sie versuchen, werfen einenString
- Objekt auf ein array von String-ObjektenString[]
". Wenn Sie das WortList
als Sie haben, dann werden Sie implizit bedeutenjava.util.List
InformationsquelleAutor Nicolas Filotto
Die Linie
ist ein raw-Typ und so (potentailly) alle Objekte im code sein könnte, welche als
Object
.Versuchen
InformationsquelleAutor OldCurmudgeon
An einem gewissen Punkt in Ihrem code, den Sie versuchen zu casten, ein String in String[]. Ihr stack-trace wird Ihnen sagen, wo genau.
Abgesehen davon, dass dein code hat jede Menge andere Probleme.
InformationsquelleAutor DaImmi
Tun Sie dies:
du hast Recht @nicolas, aber hier hat er erwähnt seine Abfrage. Ich habe schon ihn gefragt, was die Abfrage und es enthält nur eine Spalte auswählen, nur.
InformationsquelleAutor Nimesh