NoSuchElementException/Enumeration

Status
Nicht offen für weitere Antworten.

mirjam

Mitglied
Hallo,

aus "Java ist auch Insel" habe ich die folgende Aufgabe zu der leider die Lösung fehlt:

"Implementiert man das Interface java.util.Enumeration, so lassen sich damit die Elemente einer Klasse der Reihe nach aufzählen. Implementiere eine Klasse Quadratic, die Quadratzahlen bis kleiner 1000 liefert. Der Zugriff soll dabei mittels nextElement() erfolgen. hasMoreElements() darf nur so lange true sein, bis die Werte tatsächlich kleiner 1000 sind.
Wie wird das Ende angezeigt, falls wir doch noch einen Wert herausholen wollen, dies aber überhaupt nicht erlaubt ist?"

Nun würde ich, wenn ein Wert versucht wird herauszuholen, obwohl die 1000 schon erreicht ist, eine Exception werfen. Das ist doch vermutlich mit der letzten Frage in der Aufgabenstellung gemeint? Laut dazugehöriges Buch gibt es bereits eine NoSuchElementException. Die kann ich hier doch sicherlich verwenden?
Warum wird dann aber der folgende Code nicht kompiliert?



Java:
import java.util.Enumeration;

public class Quadratic  implements Enumeration  
{
	/* 	
	 * Aufgabe: 
	 * Implementiert man das Interface java.util.Enumeration, so lassen sich 
	 * damit die Elemente einer Klasse der Reihe nach aufzählen. 
	 * Implementiere eine Klasse Quadratic, die Quadratzahlen bis kleiner 1000 
	 * liefert. Der Zugriff soll dabei mittels nextElement()  erfolgen. 
	 * hasMoreElements() darf nur so lange true sein, bis die Werte tatsächlich 
	 * kleiner 1000 sind. 
	 * Wie wird das Ende angezeigt, falls wir doch noch einen 
	 * Wert herausholen wollen, dies aber überhaupt nicht erlaubt ist? 
	*/
	
	//aktuelle Quadratzahl
	private int aktQ;
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Quadratic meineQuadratzahl = new Quadratic();
		
		try{
			while(meineQuadratzahl.hasMoreElements()){
				System.out.println("nächste Zahl: " + meineQuadratzahl.nextElement());
			}
			System.out.println("nächste Zahl: " + meineQuadratzahl.nextElement());
		}
		catch(NoSuchElementException  e){
			System.out.println("keine Quadratzahl mehr!");
		}
 

	}

	private Quadratic(){
		aktQ = 0;
	}
	public boolean hasMoreElements() {
		if(aktQ * aktQ < 1000)
			return true;
		else
			return false;
	}

	public Object nextElement() throws NoSuchElementException {
		
		if(!hasMoreElements())
			throw new NoSuchElementException ();
		
		int y = aktQ * aktQ;
				
		aktQ++;
		return y;
		
			
	}
	

}
 

Landei

Top Contributor
Moment, ich lese grad mal eben Zeilennummer und Art des Compilierfehlers aus meiner Glaskugel...

Kann es sein, dass dir eventuell ein
Code:
import java.util.NoSuchElementException
fehlt?

Enumeration ist übrigens veraltet, jetzt nimmt man Iterator, und zwar möglichst generisch, also z.B. Quadratic implements Iterator<Integer>
 

Illuvatar

Top Contributor
Es wäre hilfreich gewesen, wenn du die Fehlermeldung mitgepostet hättest:
Quadratic.java:48:40: cannot find symbol
symbol : class NoSuchElementException
location: class Quadratic

Das liegt daran, dass du den Import vergessen hast:
Java:
import java.util.NoSuchElementException;
 

mirjam

Mitglied
Enumeration ist übrigens veraltet, jetzt nimmt man Iterator, und zwar möglichst generisch, also z.B. Quadratic implements Iterator<Integer>

Ich weiß, aber die 1. Übungsaufgabe ist halt noch zu Enumeration und erst die 2. zu Iterator. Find ich nicht schlecht, wenn man das alte auch mal gesehen hat. Aber keine Sorge, nachdem nun die 1. Aufgabe klappt, hab ich zur 2. (Iterator) sicherlich auch bald eine Frage. ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
S Input/Output NoSuchElementException Java Basics - Anfänger-Themen 7
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
B komische NoSuchElementException Java Basics - Anfänger-Themen 18
S NoSuchElementException ? Java Basics - Anfänger-Themen 0
H NoSuchElementException Java Basics - Anfänger-Themen 2
D java.util.NoSuchElementException: No line found Java Basics - Anfänger-Themen 11
D Lesen aus Datei (java.util.NoSuchElementException) Java Basics - Anfänger-Themen 22
Z NoSuchElementException - Scanner.nextLine() Java Basics - Anfänger-Themen 4
K Arraylist und NoSuchElementException Java Basics - Anfänger-Themen 3
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
L Enumeration Wetter - leer initialiseren? Java Basics - Anfänger-Themen 5
D Enumeration in String konvertieren und ausgeben Java Basics - Anfänger-Themen 1
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
OnDemand Enumeration <> JList Java Basics - Anfänger-Themen 5
F Problem mit Enumeration Java Basics - Anfänger-Themen 6
W Interface Enumeration Java Basics - Anfänger-Themen 8
L Enumeration paramNames liefert Werte durcheinander Java Basics - Anfänger-Themen 13
enne87 Enumeration Java Basics - Anfänger-Themen 3
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
G Enumeration mit HashMap? Java Basics - Anfänger-Themen 4
G Länge einer Enumeration feststellen Java Basics - Anfänger-Themen 15
E Enumeration eine Art Array? Java Basics - Anfänger-Themen 4
F 'for'-Schleife und Enumeration - innen Vs. außen Java Basics - Anfänger-Themen 4
M Erstes Element einer Enumeration? Java Basics - Anfänger-Themen 6
R Enumeration oder Iterator? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben