In Java-Versionen bis 1.5 hat man immer sowas mit einem Cast gemacht.
Code:
String id = (String)vo.elementAt(9); //alternativ mit get(int i)
Ab 1.5 hat man nun auch die Möglichkeit, das sicherer über Generics zu machen - ein Cast birgt immer das Risiko einer ClassCastException. Diese tritt auf, wenn versucht wird auf einen anderen Objekt-Typ zu casten, als man gerade im Zugriff hat.
Mit Generics ganz anders. Hier wird schon vom Compiler geprüft, ob die Typsicherheit gegeben ist.
Dazu musst du bereits den Vector entsprechend deklarieren:
Code:
Vector<String> v = new Vector<String>();
bedeutet, dass der Vector nur noch Strings aufnehmen kann. Wird versucht ein anderes Objekt im Code einzufügen, wird sich der Compiler beschweren und kein Compilat erzeugen.
Aus einem so "präparierten" Vector werden die Daten dann so geholt:
Code:
String str = v.get(i); //es ist sicher, dass hier ein String geholt wird
Da der Index beim Vector null-basiert ist, wäre das 9. Element aber
Code:
elementAt(8)
Wie wird der Vector denn befüllt? Stecken da Strinbg-Objekte drinn? Dann hilft der Cast. Ansonsten müsstest am zurückgelieferten Element die toString()-Methode aufrufen.
Hi, ich hab hier auch wieder nenn kleines Problem dazu
Code:
Vector waz = MITdoc.getItemValue("MIT_WAZnow"); // füllt den Vector
String WAZStr = (String)waz.elementAt(0);
double doublewert = Double.valueOf(WAZStr).doubleValue();
double WAZnow = timediff + doublewert;
MITdoc.appendItemValue("MIT_WAZnow", WAZnow); //schreib die double Zahl in das Dokument
MITdoc.save(); // speichert das Dokument
nun zum Problem, mein Element(0) ist eine double Zahl, die ich aus nun auslese und mit einer Anderen verrechnen muss.
ich arbeite mit Lotus Notes und dort gibs noch ne etwas andere API, daher einfach die Zeilen 2,5,6 nicht wirklich beachten
so wie ich es jetzt gepostet hab, bekomm ich zwar kein Fehler beim kompilieren, aber wenn ich es dann durchlaufen lass bekomm ich die Meldung "Java.lang.ClassCastException: java.lang.Double incompatible with java.lang.String"
aber als double kann ich die nicht wirklich aus dem vector auslesen, bzw ich mach was falsch, habt ihr nenn tipp für mich?