Vector

mart hat gesagt.:
Hi DomAber für dein konkretes Problem mit den "< >" ist das ja eigentlich ohne Belang, oder?

Das ist richtig, aber aus Gründen der Komptibilität, müsste ich mich jetzt entscheiden, die relativ neue Metode der Templates zu benutzen (- Kompatibilität) oder den genannten Umweg über das erweitern von Arrays "per Hand" zu machen. (Array zwischenspeichern, erweitern und zurück schreiben) Aber denke ich werde es erst mal bei dem Vector belassen, ist ja viel schöner so :D

Mfg
Dom
 
Java stellt ein ganzes Säckle an Collections zur Verfügung.

Es gibt als Listen Vectoren (synchronisiert, langsamer als LinkedList und ArrayList), ArrayList (unsynchronisiert, schnell beim Füllen) und LinkedList (unsynchronisiert, schnell beim Einfügen und Herauslöschen).

Für Deine Aufzählung wäre sicherlich die ArrayList optimal, da Du anscheinend die Liste einmal füllst, dann bleibt sie wie sie ist, nur das die Texte jeweils geändert werden und mehrere Threads greifen scheinbar auch nicht drauf zu, da ist die Synchronisierung unwichtig.

Willst Du Dein Problem "altmodisch" lösen, bietet sich Vererbung an:

Code:
public class TextFieldList extends ArrayList {
  public TextFieldList() {
	super();
  }
  public TextField getTextField(int i) {
	if (super.get(i) instanceof TextField) {
	  return (TextField)super.get(i);
	}
	else {
	  return null;
	}
  }
}

Schon brauchst Du in Deinem Programm nicht mehr casten.
 
So hatte ich das ja zum Anfang hin auch angedacht, nur Problem war dabei ja (wie bereits beschrieben) das ich die Felder zwar nur einmal fülle, aber ich sie mehrmals wieder auslese, und dann jedes mal eine If-Konstruktion drum herum bauen muss, das war mir zu "aufwendig" bzw. zu umständlich.

Mfg
Dom
 
Und was, wenn du dir eine eigene Methode schreibst? Du wirst zwar nicht um die Prüfung rum kommen, aber so brauchst du den Code dafür nur einmal schreiben. Wenn du dann ein Element ausliest, dann benutzt du einfach diese Methode. Wär das ein Vorschlag?

TOM
 
Das ist auch eine Idee, geht ja in die Richtung von Schnuffi, nur ohne extends, würde dann dann so lösen:

Code:
public void tAccess()
	{
	
	Vector vec=new Vector(1,10);
	JTextField txt_feld=new JTextField();
	vec.add(txt_feld);
	conv(vec.get(0)).setText("Neu");
	}
	
	public JTextField conv(Object ob)
	{
		if (ob instanceof JTextField) {
			return (JTextField)ob;}
		else
			return null;
	}

So hattets du es doch gemeint oder? Zwar nicht ganz so schön wie die "neumodische" Methode, aber zumindest um längen kompatibler, danke an alle junge, sowie alte Hasen :)

Mfg
Dom
 
Hallo!

Also ich wuerde mir keine eigenen Collections bauen... sondern die standardmaeszigen nehmen und entweder entsprechend Casten oder Java 5 Generics verwenden. Fuer "jedes" BO, dass prinzipiell in einer Liste gepackt werden kann, eine eigene spezielle BOList Klasse zu erstellen oder gar zu generieren nur um Typsicherheit zu erhalten halte ich fuer nicht wirklich erstrebenswert... das fuehrt nur zu einem Wildwuchs an Klassen und dadurch verliert man schnell den Ueberblick.
Code:
public class TextFieldList extends ArrayList {
  public TextFieldList() {
	super();
  }
  public TextField getTextField(int i) {
	if (super.get(i) instanceof TextField) {
	  return (TextField)super.get(i);
	}
	else {
	  return null;
	}
  }
}
Sorry, aber bei sowas bekomme ich ganz schlimm Bauchweh...

Gruss Tom
 
Haben die Magentropfen angeschlagen, Tom? :)

Ich persönlich würde natürlich nicht wegen eines Casts eine eigene Klasse schreiben, doch der "Herr der Programmierung" ist immernoch der Entwickler - also das Problem bestand im "nicht soviel casten zu wollen". Dafür gibt's z.B. die 3 Lösungen:
- Java 5
- abgeleitete Klasse
- spezielle Methode

P.S.: Was soll an abgeleiteten Klassen schlecht sein? Die Vererbung ist doch gerade das, was eine objektorientierte Programmiersprache ausmacht.
 
Stimmt, du hast vollkommen recht, Vererbung ist wirklich ein elementarer Bestandteil.

Allerdings, und natürlich gibt es ein aber :p , ist ein Wildwucher an Klassen auf jedenfall zu vermeiden, da damit, was Tom schon gesagt hat, und ich stimme ihm da 100% zu, die Übersichtlichkeit und somit dann auch die Wartbarkeit und Einarbeitungszeit unnötig verkompliziert werden.

Gruß
TOM
 
Zurück