Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
this.vecResult.add(vecLines); hier fügst du Objekt der Klasse Vector in die Liste ein
hier weißt du das Objekt der Klasse Vector einem Array zu String[] lines = vecResult.get(i);
mhn ein Vector ist kein Array ;-)
du könntest
String[] arr = (String[])vecResult.get(i).toArray();
aufrufen...
Noch ein paar Tipps:
1. ArrayListe statt Vector verwenden, Vector ist eher veraltet
2. Generics verwenden, da hiflt dir Google
3. Im Grunde keine Liste in Listen, in Arrays verwenden usw... lieber eigene Objekte in Listen packen, ist viel wartbarer...
Du bekommst doch sicher noch eine Komilerwarnung, dass ein Vector typisiert werden sollte
Mach
Java:
Vector<String> vecLines = new Vector<String>();
Dann hast du Strings drin und es kommen aus Strings raus. Ohne nachzuschauen würde ich mal vermuten, dass in einem untypisierten Vector Objects sind ....
Warum legst du im Loop jedes mal einen Vector an? Das ist mir gar nicht klar.
Da fehlt doch einfach nur der cast oder, damit er weis was für ein objekt da aus dem vektor kommt.
[c]String[] lines = (String[]) vecResult.get(i);[/c]
aber du speicherst ja garkein String[] sondern einen vector, also musst du auch vector wieder auslesen
[c]Vector lines = (Vector) vecResult.get(i);[/c]
sollte der Kompiler eigentlich gar nicht akzeptieren!
Da gehört nun einfach ein Typ hin. Es währe nämlich auch einfacher zu erkennen was der Programmierer wirklich wollte!
Java:
Vector<String> xx = new Vector<String>();
dann können wir genau so gut den ganzen code in kleinbuchstaben schreiben - das ist dem kompiler nämlich auch egal.
naja kannst dir eh einstellen... aber grundsätzlich wäre es fatal das zu verbieten! Stell dir mal die ganzen Java Anwendung vor die vor Generics geschrieben wurde... macht wenig Sinn jetzt 50.000 Zeilen auf Generics umzustellen wenn der Code ansonsten rund läuft...
Hab des ganze nun mit ArrayList geschrieben, bekomm aber den gleichen Fehler in der gleichen Zeile wie oben.
[Java]
ArrayList<String> vecResult = new ArrayList();
while (rs.next()) {
ArrayList<String> vecLines = new ArrayList();
for (int i = 1; i < cols; i++) {
vecLines.add(String.valueOf(rs.getString(i)));
}
this.vecResult.addAll(vecLines);
}
Zu Vector<String>, hab ja zwei Vectoren der eine soll in den anderen rein. Dann muss doch der außerste Vector von Type Object sein, sonst kann ich doch keinen Vector adden.
Du brauchst ja (vermutlich ein 2dimensionales Konstrukt)
Java:
ArrayList<ArrayList<String>> vecResult = new ArrayList<ArrayList<String>>();
while (rs.next()) {
ArrayList<String> vecLines = new ArrayList<String>();
for (int i = 1; i < cols; i++) {
vecLines.add(rs.getString(i));
}
vecResult.add(vecLines);
}
Du schreibst ja was er sein muss - ein Vector von Vectoren und nicht ein Vector von Objecten.
und im Speziellen ein Vector von Vectoren von Strings ;-)
Also mach es doch auch so ;-)
Java:
Vector<String> innen = new Vector<String>();
Vector<Vector<String>> aussen = new Vector<Vector<String>>();
Der Kompiler dankt es dir dadurch, dass er dir recht genau Fehlermeldungen gibt, wenn du das selbst definierte Typenkonzept verletzt
Zu Vector<String>, hab ja zwei Vectoren der eine soll in den anderen rein. Dann muss doch der außerste Vector von Type Object sein, sonst kann ich doch keinen Vector adden.
Mal tausend Danke für eure Antworten. Hab ne Menge gelernt.
Habs nun mit
Java:
ArrayList<ArrayList<String>> arrResult = new ArrayList<ArrayList<String>>();
gelöst. Muss somit auch nix mehr casten.
Java:
while (rs.next()) {
ArrayList<String> arrLines = new ArrayList<String>();
for (int i = 1; i < cols; i++) {
arrLines.add(rs.getString(i));
}
this.arrResult.add(arrLines);
}
Java:
for (int i = 0; i < arrResult.size(); i++) {
ArrayList<String> lines = arrResult.get(i);
for (int j = 0; j < lines.size(); j++) {
System.out.print(lines.get(j) + "|");
}
System.out.println("");
}