Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: Vector Probleme!

  1. #1
    banshee
    Gast

    Vector Probleme!

    Hi ,
    ich habe ein kleines Vector Problem und hoffe nun auf euro Hilfe !

    Ich habe einen Vector in dem ich Werte vom Typ Long speicher.
    Diese Long Variablen habe ich wie folgt angelegt.

    Long test[] = new Long[50];

    Das Speichern funktioniert auch soweit nur bekomme ich die Daten nichtmehr aus meinem Vector alle Versuche mit Typumwandlung wieder an die Werte zu kommen sind Fehlgeschlagen (ClassCastException)

    Mein Vectorstruktur sieht folgendermaßen aus

    Vector[0] -> Long[50] -> Long "longWert"
    -> Long "longWert"
    Vector[1] -> Long[50] -> Long "longWert"
    -> Long "longWert"

    Wie komme ich nun an meine longWerte ??

    Probiert habe ich folgendes.
    getItemItems ist mein Vector.
    Times ist die klasse in der ich meine verschiedene Vectoren gespeichrt habe.

    Long test[] = new Long[50];
    test[i] = (Long) times.getItemTimes().elementAt(i);

    Mit Long.ValueOf(times.getItemTimes().elementAt(i)).lo ngValue();

    komme ich leider auch nicht weiter.

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von banshee
    Long test[] = new Long[50];
    test[i] = (Long) times.getItemTimes().elementAt(i);
    Ich nehm mal an, Times sollte gross geschrieben sein...

    folgendes sollte gehen:

    test[i] = Times.getItemTimes.elementAt(i);

    Da, wie ich annehme, getItemTimes der Variabelname des Vektors ist. Ev musst du das (Long) noch lassen - musst mal ausprobieren.

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    banshee
    Gast
    Nein times ist eigentlich kleingeschrieben.
    Habe doch vorher irgendwoe
    Times times = new Times();
    Die Klasse ist von mir selber erstellt. Gibt es schon eine Klasse in Java die so heisst?

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Wie erstellst du denn den Vector genau?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    banshee
    Gast
    Der Vector ist global und würde so erzeugt:

    static Vector registerItemTimeValues = new Vector();

    elemente habe ich so eingefügt

    registerItemTimeValues.addElement(registerItemTime s);

    wobei registerItemTimes so aussieht

    Long registerItemTimes[] = new Long[50];

    Zum Schluss übergebe ich den Vector dann an meine setFunktion der times klasse

    times.setItemTimes(registerItemTimeValues);

  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    geht

    test[i] = times.getItemTimes.elementAt(i);

    jetzt oder nicht? Vielleicht könntest du mal allfällige Fehler posten...

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von banshee
    wobei registerItemTimes so aussieht

    Long registerItemTimes[] = new Long[50];
    Wenn du als Vector Elemente Long[] hast, würde ich dann beim elementAt auch zu einem Cast auf diesen Typ raten

    Typsichere Container wäre schon fein

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  8. #8
    banshee
    Gast
    nein , test[i] = times.getItemTimes.elementAt(i);

    geht leider nicht. getItemTimes ist doch auch eine Funktion und du musst ja eine Typumwandlung machen. Der Vektor gibt ja nur nen object zurück.
    Bin leider noch immer nicht weitergekommen :-(

    Was meinst du mit allfällige Fehler???

  9. #9
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von anda_skoa
    Wenn du als Vector Elemente Long[] hast, würde ich dann beim elementAt auch zu einem Cast auf diesen Typ raten

    Typsichere Container wäre schon fein
    Naja, die gibts ja mittlerweile seit Java 1.5. Ähm Java 5 meine ich

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Naja, ich glaube nicht wirklich. Da wird nur der Cast implizit gemacht bzw generiert.

    Das konnte man bisher auch schon mit einer Wrapperklasse, was sich meistens auch auszahlt.

    Eigentlich müßte banshee bei dem Versuch das Long Array auf einen Long zu casten eine Cast Exception bekommen.

    Vielleicht ein catch(Throwable t) {} irgendwo?

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von anda_skoa
    Naja, ich glaube nicht wirklich. Da wird nur der Cast implizit gemacht bzw generiert.
    Läuft das nicht aufs gleiche raus? Ich meine ob der das jetzt als Long[] speichert und mir so zurückgibt oder als Object und das dann nach Long[] casted bevor ich das kriege kann mir ja egal sein. (Zumindest hier - schon möglich dass das anderswo einen Unterschied macht)

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  12. #12
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ein echter typabhängiger Container, wie ihn zum Beispiel C++ Templates generieren, brauchen keinen Cast und keine damit verbundene Typuntersuchung und Fehlerbehandlung.

    Ist mir völlig schleierhaft, warum man sich bei Generics für diese Templatesimulation entschieden hat, wo Generics ohnehin einen neuen Compiler vorraussetzt.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  13. #13
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von anda_skoa
    Ein echter typabhängiger Container, wie ihn zum Beispiel C++ Templates generieren, brauchen keinen Cast und keine damit verbundene Typuntersuchung und Fehlerbehandlung.
    Fehlerbehandlung und so sollte es ja eigentlich nicht brauchen da der Typ ja eh nur der richtige sein kann.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  14. #14
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Zitat Zitat von banshee
    Hi ,
    ich habe ein kleines Vector Problem und hoffe nun auf euro Hilfe !

    Ich habe einen Vector in dem ich Werte vom Typ Long speicher.
    Diese Long Variablen habe ich wie folgt angelegt.

    Long test[] = new Long[50];
    Ich weiß nicht recht, ob es da hakt, aber da legst du keine Long-Variable an, sondern ein Long(!)-Array. In deinem Vektor befinden sich also nicht Long-Werte, sondern Long-Arrays.
    Man bachte auch die Groß- und Kleinschreibung: Es handelt sich hier um Objekte, nicht um den Datentyp long.
    Geändert von mwanaheri (18-08-2005 um 14:54 Uhr)
    Das Ziel ist das Ziel.

  15. #15
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Ok, ok, anda_skoa gewinnt mal wieder - ich hab eben ein Interview mit Anders Hejlsberg gelesen und der erwähnt einen wichtigen Punkt den ich nicht beachtet habe: Rtti mit einem Vector<Foo> geht nicht wirklich gut.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •