Vector erben

Status
Nicht offen für weitere Antworten.
S

Samuel

Gast
Muss ich einen Vector, wenn ich von ihm erbe, und nicht Objects haben will, alles umschreiben?

Gemeint ist folgendes: Ich habe eine Klasse ProvinzMenge, die soll die Menge der Provinzen vom Typ Provinz sein und die ProvinzMenge erbt von Vector, nun kann ich aber auf die Methoden der Provinzen ja nicht zugreifen, weil diese ja polymorph nur als Object vorhanden sind.
Sollte ich mir nun die ganze Vector klasse komplett umschreiben, also jedes add(Object) in ein add(Provinz) ändern? Oder ist das nicht die gängige Art?


Problem ist nämlich, dass ichungerne explizit typecaste, weil das nicht so sauber ist, ich habe zwar eine Liste von Objects die Provinzen enthalten, komme aber an die Provinzen nicht wirklich dran, ausser ich typecaste diese explizit in ein Provinz Objekt, die alternative wäre dann aber wie gesagt, den ganten Vector zu überschreiben
 
B

bygones

Gast
1. Möglichkeit: Java 1.5 und generics verwenden
2. Möglichkeit: so lassen wie es ist.. eine add(Object) akzeptiert auch add(Provinz), da jede Klasse Subklasse von Object ist... du musst halt beim rausholen dann zum Typ Provinz casten
 

mattulla

Bekanntes Mitglied
Wenn ich das richtig verstanden habe heisst das Zauberwort Generics.

Code:
Vector<Provinz> Provinzmenge = new Vector<Provinz>();

Somit waere sichergestellt, dass nur Objecte vom Typ Provinz in dem Vector sind und du auch keine anderen rein packen kannst. Hoffe das ist was du gesucht hast.

Gruss
mattulla
 

Eminent

Bekanntes Mitglied
mattulla hat gesagt.:
Wenn ich das richtig verstanden habe heisst das Zauberwort Generics.

Code:
Vector<Provinz> Provinzmenge = new Vector<Provinz>();

Somit waere sichergestellt, dass nur Objecte vom Typ Provinz in dem Vector sind und du auch keine anderen rein packen kannst. Hoffe das ist was du gesucht hast.

Gruss
mattulla

Hier ist aber Vorsicht geboten!!!! Generics sind erst mit JAVA 1.5 verfügbar. Wenn du eine ältere Java-Version hast musst einfach casten um auf deine Methoden zuzugreifen.

Code:
java.util.List provinzen = new Vector(); // Verwende immer Interface List kannst aber auch Vector provinzen verwenden

// Hier kannste jetzt deinem Vector so viele Provinzobjekte hinzufügen wie du willst.

// provinzen.get(xxxx) gibt dir jetzt ein Object zurück.

((Provinz) provinzen.get(xxx)).provinzmethode();  // und schon kannst du auf deine Methoden zugreifen

Hoffe ich konnt dir helfen.
 
S

Samuel

Gast
Ehm, und ohne Generics, gibts ja nur typecasten oder den Vector so umschreiben, dass es Provinzen nimmt, was wäre die sauberer Lösung? Das Umschreiben der Menge, oder? Weil ja das Typercasten eine Fehlerquelle ist und man Objekte hin und her jagt
 
S

Samuel

Gast
Ehm, ich verstehe Generics nicht ganz, habes gelesen und verstehe die Funktion, aber im Zusammenhang bei mir nicht ganz, ich habe eine ProvinzMenge, diese extended Vector, wenn es Generic sein soll, muss dann die Klasse ProvinzMenge so aussehen:
Code:
public class ProvinzMenge<Provinz> extends Vector {

}
Dennoch kann ich folgendes nicht machen
Code:
Provinz p  = provinzen.get(22);

Es koppt wieder bei p der typemissmatch
 
G

Guest

Gast
Hallo,

was soll denn an dem Casten so problematisch sein??

Wenn man unbedingt sicherstellen will das eine von Vector abgeleitet Klasse nur bestimmte andere Klassen aufnehmen kann, dann kann man ja auch z.B. die add() Methode überschreiben.

Ist jetzt nur so ein Gedankenspiel:

Code:
add(Object o) {
    if (o instanceof Provinz)
        super.add(o);
    else
        throw Exception("Kein gültiges Element");
}
 

Illuvatar

Top Contributor
Deine Klasse ist falsch, Samuel (Kompiliert das überhaupt?). Es müsste public class ProvinzMenge extends Vector<Provinz> heißen.

Gast: Naja, Generics sind halt schon schöner als das da ;)
 
S

Samuel

Gast
Jep, das Generics hinter Vector hatte ich nicht, nun gehts, danke.

Es leben Generics!
 

Leroy42

Top Contributor
Mußt du jetzt überhaupt noch von Vector erben? D.h. hat deine Klasse ProvinzMenge überhaupt
Methoden die Vector nicht hat? Ansonsten brauchst du ja gar keine neue Vector-Unterklasse.

Oder willst du dir Schreibarbeit sparen und ohne diese Kleiner/Größer-Zeichen auskommen?

Dann dürfte
Code:
class ProvinzMenge extends Vector<Provinz> {}
eigentlich ausreichen.
 
S

Samuel

Gast
Es geht um logische Namenklatur, es gibt halt mehrere Mengen um diese trennen zu können, ist XMenge nur n Wrapper, ausserdem kann es sein, dass wir diese erweitern müssen, mit Dingen die Vector nicht hat
 
B

bygones

Gast
dennoch gilt es - lieber Delegation als Vererbung.

Die Frage ist - ist deine ProvinzMenge eine wirkliche Unterklasse von Vector, also erweitert sie die Klasse vector ? oder soll sie einfach auch als Container genommen werden ?

dann lieber delegation
Code:
public class ProvinzMenge {
  private Vector<Provinz> provinzen;
....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
M Klassen Gesamt speicherbare Elemente in Vector? Java Basics - Anfänger-Themen 3
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
P Objekte in Vector werden überschrieben Java Basics - Anfänger-Themen 4
P Array in Vector speichern Java Basics - Anfänger-Themen 2
E Methoden new Vector().add(x).add(x); ? Java Basics - Anfänger-Themen 5
F Vector istGeordnet Java Basics - Anfänger-Themen 15
R Vector-Filterfunktion Java Basics - Anfänger-Themen 4
Todesbote Map (Key=String; Value = Vector) Value/Vector sortieren Java Basics - Anfänger-Themen 13
J Vector Manipulieren.. Wie? Java Basics - Anfänger-Themen 16
M Vector eines Vectors einzeln ausgeben Java Basics - Anfänger-Themen 9
K String kommt schon in Vector vor? Java Basics - Anfänger-Themen 36
J Erzeugung eines Vector-Objekts - Frage zum Typ Java Basics - Anfänger-Themen 3
H Zugriff auf Vector Element Java Basics - Anfänger-Themen 2
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
A Author in Vector Java Basics - Anfänger-Themen 22
M Vector überschreibt Elemente bei add()-Methode Java Basics - Anfänger-Themen 10
T Elemente im Vector werden einfach überschrieben! Java Basics - Anfänger-Themen 3
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
B Globale vector? Java Basics - Anfänger-Themen 7
E 2 Dimensionaler Vector Java Basics - Anfänger-Themen 5
T Map<String, Vector>? Java Basics - Anfänger-Themen 11
P Collections Vector füllen in for-Schleife Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
M 2D Vector Java Basics - Anfänger-Themen 2
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
E Datentypen Klasse Vector aus der Standard-API anwenden Java Basics - Anfänger-Themen 7
D Klasse Vector entwerfen Java Basics - Anfänger-Themen 7
A Arrays vs Liste vs Vector Java Basics - Anfänger-Themen 30
H in for Schleife über Vector iterieren Java Basics - Anfänger-Themen 2
S Datentypen Vector auslesen Java Basics - Anfänger-Themen 12
yampi Objektsammlung - Hashtable, Vector, Arrays Java Basics - Anfänger-Themen 8
T Vector-Positin anzeigen Java Basics - Anfänger-Themen 3
C Vector - obsolete collection Java Basics - Anfänger-Themen 1
C Vector<Object> Probleme Java Basics - Anfänger-Themen 38
C Datentypen Probleme mit Vector.contains() Java Basics - Anfänger-Themen 10
M Datentypen function(Vector<SuperClass>), Vector<Subclass> Java Basics - Anfänger-Themen 6
L Vector Sortieren Java Basics - Anfänger-Themen 8
B Vector in Table ersetzen Java Basics - Anfänger-Themen 4
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
kitz Telefonbuch (Vector) Java Basics - Anfänger-Themen 17
E Arraylist mit Daten aus Vector füllen Java Basics - Anfänger-Themen 7
S Vector -> String JComboBox Java Basics - Anfänger-Themen 11
F Vector wird überschrieben Java Basics - Anfänger-Themen 8
T Vector sortiern Java Basics - Anfänger-Themen 7
C Frage zu Vector und muliplizieren des Inhaltes Java Basics - Anfänger-Themen 2
S Vector von eigenen Klassen Java Basics - Anfänger-Themen 2
J Collection Vector Java Basics - Anfänger-Themen 8
Streeber ArrayList/Vector, mehrdimensional Java Basics - Anfänger-Themen 11
N Was ist der Unterschied zwischen ArrayList und Vector? Java Basics - Anfänger-Themen 3
babel Einen Vector/Liste mit Daten prüfen Java Basics - Anfänger-Themen 31
B Hilfe zum einem Problem mit Vector Java Basics - Anfänger-Themen 8
H Vector - Fehler? Java Basics - Anfänger-Themen 2
babel einen Vector nach Datum sortieren Java Basics - Anfänger-Themen 21
T Array-Vector Problem Java Basics - Anfänger-Themen 18
P Vector und Exception Java Basics - Anfänger-Themen 7
K Vector Java Basics - Anfänger-Themen 3
K Vector Java Basics - Anfänger-Themen 10
babel ein Vector mit verschiedenen Werten auslesen und berechnen Java Basics - Anfänger-Themen 34
T Object aus Vector übergeben Java Basics - Anfänger-Themen 2
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23
L Vector einem Array hinzufügen Java Basics - Anfänger-Themen 14
P Vector mit double Java Basics - Anfänger-Themen 3
P Vector Elemente auslesen Java Basics - Anfänger-Themen 9
N Anfängerfrage richtige Syntax und Frage zu Vector Java Basics - Anfänger-Themen 7
C Unterschied zwischen ArrayList und Vector Java Basics - Anfänger-Themen 2
W Vector mit String[] auslesen Java Basics - Anfänger-Themen 4
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
Q Vector verändert trotz final seine Größe Java Basics - Anfänger-Themen 5
B Dopplete aus Vector entfernen Java Basics - Anfänger-Themen 8
E Vector Fehler bei allen Methoden von Vector Java Basics - Anfänger-Themen 2
K Vector zu Array machen Java Basics - Anfänger-Themen 10
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
L Multidimensional Vector - Recordset Java Basics - Anfänger-Themen 5
K Objektklasse mit leerem Vector füllen Java Basics - Anfänger-Themen 6
K Vector wird überschrieben Java Basics - Anfänger-Themen 7
G Vector Strijng parsen Java Basics - Anfänger-Themen 6
K vector cannot be resolved Java Basics - Anfänger-Themen 3
G Zeichenkette suchen in Vector-Klasse Java Basics - Anfänger-Themen 11
R fehler beim incrementellen schreiben in einen vector Java Basics - Anfänger-Themen 11
M ObjectInputStream, Object und Vector<Object> Java Basics - Anfänger-Themen 4
G Vector, equal & Casts Java Basics - Anfänger-Themen 5
N Objekte in einen Vector packen oder nicht? Java Basics - Anfänger-Themen 3
D Frage zu Vector Java Basics - Anfänger-Themen 7
S Problem mit Vector Java Basics - Anfänger-Themen 2
G Object[] [] nach vector casten. Java Basics - Anfänger-Themen 3
G 2D vector zugriff auf elementinterne elemente wie Java Basics - Anfänger-Themen 3
G vector in neuem vector sortieren Java Basics - Anfänger-Themen 3
G jede 2te zeile in vector leer einfügen, wie? Java Basics - Anfänger-Themen 4
G vector füllt sich immer weiter. wo muss ich ihn leeren? Java Basics - Anfänger-Themen 3
V Vector/Arraylist hat nur gleiche Einträge Java Basics - Anfänger-Themen 3
G Vector eigenen Typs mit Daten füllen Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben