iterator instanziieren!

Status
Nicht offen für weitere Antworten.

dermoritz

Bekanntes Mitglied
ich baue grad eine funktion die einen iterator ausgeben soll. aber irgendwie kann ich den iterator/ die rückgabe variable nicht instanziieren.
d.h.

Code:
Iterator variables=new Iterator();
oder

Code:
Iterator<?> variables=new Iterator<?>();

funktioniert nicht.

im detail sieht das ganze so aus:

Code:
private Iterator<?> getAttributes(Element element){
		Iterator<?> activetags =element.getChildren("activetag").iterator();
		Iterator<?> variables=new Iterator<?>(); //funzt nich :-(
		while (activetags.hasNext()) {
			Element activetag = (Element) activetags.next();
			if (activetag.getAttributeValue("tagtype").equalsIgnoreCase("Attributes")){
				variables = activetag.getChildren("VARIABLE").iterator();
				
			}
		}
		return variables;
	}

"Element" ist eine klasse aus jdom - es geht hier also um xml. ich würde gerne variables mit einem leeren iteraor (nicht null!) vorbelegen.

danke im voraus
 

Wildcard

Top Contributor
Iterator ist ein Interface. Du brauchst eine konkrete Implementierung zum Instanzieren.
Diese Implementierung musst du selbst liefern
 
S

SlaterB

Gast
ein Interface kannst du nicht instanziieren, aber eine Dummy-Klase schreiben
Code:
        Iterator<?> variables=new Iterator<Object>() {

            public boolean hasNext()
            {
                return false;
            }

            public Object next(){
               return null;
            }

            public void remove()
            {
            }
     };
null wäre vielleicht doch besser ;)
 

ARadauer

Top Contributor
du willst einen Iterator zurück geben?

das kannst du so machen

Code:
	private Iterator getAttributes(Element element){ 

		return new Iterator(){ 

			public boolean hasNext() {
				//hier deine Verhalten
				return false;
			}

			public Object next() {
				//hier deine Verhalten
				return null;
			}

			public void remove() {
				//hier deine Verhalten

			}
		};
	}
 

dermoritz

Bekanntes Mitglied
danke für die schnellen antworten,

das problem mit der null ist eben die möglich null pinter exceptions wenn man sie nicht abfängt. wenn die funktion einen leeren iterator zurückgeben könnte wäre das besser.

kann man eventuell mit einem listen iterator instanzieren und dann überschreiben -mit welchem iterator auch immer? ich glaube sogar jdom liefert listen bzw. würde ich eine funktion benutzt die ein lsite liefert und bilde damit den operator.
ich weiß natürlich nicht welche art von liste diese funktion liefert. kann man damit einen iterator instanziieren oder muss man auch eine konkrete implementierung der liste wählen?

wie gut ist z.b. diese idee:

Code:
Iterator<?> variables=new ArrayList().iterator();
 

ARadauer

Top Contributor
naja der iterator soll ja nicht irgendwas mchen, sondern über die attribute deines elementes itterieren

mach eine eigene Klasse
 

dermoritz

Bekanntes Mitglied
und was haltet ihr davon (verwendet null):

Code:
private Iterator<?> getAttributes(Element element){
		Iterator<?> activetags =element.getChildren("activetag").iterator();
		Iterator<?> variables=null;
		while (activetags.hasNext()) {
			Element activetag = (Element) activetags.next();
			if (activetag.getAttributeValue("tagtype").equalsIgnoreCase("Attributes")){
				variables = activetag.getChildren("VARIABLE").iterator();
			}
		}
		if( variables==null){
			variables=new ArrayList<Object>().iterator();
		}
		return variables;
	}
 
S

SlaterB

Gast
ich finde das ganz gut, noch besser

Collections.EMPTY_LIST.iterator();

allerdings wird dann immer noch immer ein neues Iterator-Objekt angelegt,
wenn du ganz sparsam sein willst, dann am Anfang einen davon in einer statischen Variable ablegen,
 

dermoritz

Bekanntes Mitglied
danke, d.h. so:?

Code:
private Iterator<?> getAttributes(Element element){
		Iterator<?> activetags =element.getChildren("activetag").iterator();
		//to get an empty iterator as default
		Iterator<?> variables= Collections.EMPTY_LIST.iterator();
		while (activetags.hasNext()) {
			Element activetag = (Element) activetags.next();
			if (activetag.getAttributeValue("tagtype").equalsIgnoreCase("Attributes")){
				variables = activetag.getChildren("VARIABLE").iterator();
			}
		}
		return variables;
	}

das ein objekt angelegt wird sobal diese funktion aufgerufen wird ist ja erwünscht. nur ist dieser iterator eben entweder leer oder eben nicht. oder was hast du mit dem statischem wert gemeint?
 

FArt

Top Contributor
Ein statisches Feld mit einer anonymen Klasse für einen leeren Iterator erstellen und immer diese Instanz zurückliefern könnte Abhilfe schaffen...

Code:
  private static Iterator EMPTY_ITERATOR = new Iterator() {
    public void remove() {
      throw new UnsupportedOperationException();
    }
    public boolean hasNext() {
      return false;
    }
    public Object next() {
      throw new NoSuchElementException();
    }
  };
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
N Kann man einen Iterator nur einmal verwenden Java Basics - Anfänger-Themen 5
N Warum Springt iterator nur in der Schleife weiter Java Basics - Anfänger-Themen 9
volcanos HashSet und Iterator -> Falsche Sortierreihenfolge ? Java Basics - Anfänger-Themen 18
J Methoden Die Reihenfolge der Iterator-Elemente umkehren Java Basics - Anfänger-Themen 3
J Methoden iterator for-schleife (hasNext() ) Java Basics - Anfänger-Themen 7
Stargirlxo Iterator + Methode Java Basics - Anfänger-Themen 10
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
U Hashmap Iterator selbst implementieren Java Basics - Anfänger-Themen 10
F nur das erste Element mit iterator ausgeben Java Basics - Anfänger-Themen 5
O Iterator erneut! Java Basics - Anfänger-Themen 8
O Iterator für eine geordnete Menge Java Basics - Anfänger-Themen 134
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
K Iterator zurückliefern Java Basics - Anfänger-Themen 8
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
S Iterator einer Liste Java Basics - Anfänger-Themen 4
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
I Erste Schritte Iterator Java Basics - Anfänger-Themen 3
M Iterator funktioniert nicht Java Basics - Anfänger-Themen 5
M Iterator cannot refer to a non final... Java Basics - Anfänger-Themen 20
O Interface Iterator Java Basics - Anfänger-Themen 2
M Collections Frage Beispielprogrammierung Iterator Java Basics - Anfänger-Themen 13
M Iterator Java Basics - Anfänger-Themen 25
J Iterator Funktioniert nicht richtig in StackImplementierung Java Basics - Anfänger-Themen 3
Z Hashmap Iterator löscht nicht Java Basics - Anfänger-Themen 8
L Iterator Java Basics - Anfänger-Themen 1
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
OnDemand Iterator Interfacve Java Basics - Anfänger-Themen 23
S Iterator next() Nullpointer Java Basics - Anfänger-Themen 2
T Methoden Iterator über ArrayList Java Basics - Anfänger-Themen 3
W Iterator Java Basics - Anfänger-Themen 2
D Aufgabe: Stack mit Iterator Java Basics - Anfänger-Themen 8
R Mit iterator auf Element zugreifen Java Basics - Anfänger-Themen 2
T Collections Zugriff auf Elemente aus Iterator() Schleife Java Basics - Anfänger-Themen 4
P Casting Warning bei Iterator Java Basics - Anfänger-Themen 32
F Wie Werte einer ArrayList an einen 'Custom'-Iterator übergeben? Java Basics - Anfänger-Themen 2
J Iterator Java Basics - Anfänger-Themen 5
P ArrayList mit Iterator / Iterable ausgeben Java Basics - Anfänger-Themen 8
B Funktionsweise Iterator unklar Java Basics - Anfänger-Themen 7
A Datentypen Iterator von hinten nach vorne durchlaufen Java Basics - Anfänger-Themen 4
D Wie Iterator Remove implementieren? Java Basics - Anfänger-Themen 11
B Datentypen Inhalt zum Iterator wieder aufrufen? Java Basics - Anfänger-Themen 10
D Iterator schaltet nicht weiter?! Java Basics - Anfänger-Themen 5
A Problem mit Iterator Java Basics - Anfänger-Themen 2
B Türme von Hanoi - Iterator Java Basics - Anfänger-Themen 50
V Hilfe beim implementieren von Iterator Java Basics - Anfänger-Themen 5
W Collections Iterator<E> Java Basics - Anfänger-Themen 7
L Lokale Variable und Instanzvariable innerhalb Iterator Java Basics - Anfänger-Themen 8
W OOP problem mit iterator! -.- Java Basics - Anfänger-Themen 9
B Iterator und Collection Java Basics - Anfänger-Themen 11
ruutaiokwu Iterator oder .size ??? Java Basics - Anfänger-Themen 6
vandread Iterator zählt nicht hoch?! Java Basics - Anfänger-Themen 3
L Problem mit Iterator bzw. Sortierte Liste Java Basics - Anfänger-Themen 14
N HashMap mit Iterator durchlaufen Java Basics - Anfänger-Themen 11
R Iterator Liste, Verständnisproblem Java Basics - Anfänger-Themen 4
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
M Iterator Java Basics - Anfänger-Themen 15
L Implementation gesucht - ArrayList.iterator() Java Basics - Anfänger-Themen 3
M Eigener Iterator für LinkedList Java Basics - Anfänger-Themen 20
pun Iterator über ArrayList Java Basics - Anfänger-Themen 12
P Iterator.add() Java Basics - Anfänger-Themen 3
A For Schleife - Iterator wird null Java Basics - Anfänger-Themen 7
? Map und iterator Java Basics - Anfänger-Themen 11
0x7F800000 ungereimtheiten mit Iterator/ListIterator Java Basics - Anfänger-Themen 2
N "Dynamischer" Iterator Java Basics - Anfänger-Themen 21
J Iterator remove()? Java Basics - Anfänger-Themen 5
T Liste mit Iterator auslesen Java Basics - Anfänger-Themen 11
Kr0e Iterator Java Basics - Anfänger-Themen 2
M Der Umgang mit Iterator - Wie ein Objekt aus einer ArrayList Java Basics - Anfänger-Themen 2
J ArrayList mit Iterator Java Basics - Anfänger-Themen 3
W Iterator in Queue Java Basics - Anfänger-Themen 5
A Für was Iterator ? Java Basics - Anfänger-Themen 3
M warum interface iterator verwendbar? Java Basics - Anfänger-Themen 5
O Iterator - Durchlauf "einschränken" bzw. steuern&q Java Basics - Anfänger-Themen 2
K Collection und Iterator Java Basics - Anfänger-Themen 7
Q Iterator next erstellen Java Basics - Anfänger-Themen 4
S iterator problem Java Basics - Anfänger-Themen 3
S Iterator --__-- Zugriff auf nächstes Element Java Basics - Anfänger-Themen 5
N Set + Iterator oder doch nur zu blöd API zu lesen Java Basics - Anfänger-Themen 32
R Java 5.0 neue For schleife Iterator was ist der fehler? Java Basics - Anfänger-Themen 5
N generische HashMap und Iterator Java Basics - Anfänger-Themen 2
R Iterator und HashMap Java Basics - Anfänger-Themen 10
G Probleme mit Iterator Java Basics - Anfänger-Themen 2
E umgededrehte if anweisung funzt nicht , iterator. Java Basics - Anfänger-Themen 2
A Iterator, wie funkioniert das richtig? Java Basics - Anfänger-Themen 6
S Iterator Schreibweise Java Basics - Anfänger-Themen 7
P ArrayList, iterator: Fehler in while Schleife Java Basics - Anfänger-Themen 2
T Iterator Java Basics - Anfänger-Themen 8
G Frage zur Iterator ? Java Basics - Anfänger-Themen 12
A Iterator auf anfang setzen Java Basics - Anfänger-Themen 5
blackfeet Bildfadeffekt (Halptransparenz) & iterator Java Basics - Anfänger-Themen 8
C Problem mit verschachteltem Iterator Java Basics - Anfänger-Themen 2
R Problem mit Iterator Java Basics - Anfänger-Themen 6
M Problem mit Iterator.remove() Java Basics - Anfänger-Themen 5
R Enumeration oder Iterator? Java Basics - Anfänger-Themen 2
J Klasse Iterator Java Basics - Anfänger-Themen 5
D unregelmäßige NullPointerException bei LinkedList Iterator? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben