Exception bei Element nicht in Liste

Wolfsbein

Erfahrenes Mitglied
Hallo

meine Funktion muss ein User Objekt zurückgeben. Außerdem soll sie eine Exception schmeissen, wenn der User nicht gefunden wurde. Wenn das nicht wäre würde ich einfach eine boolsche Funktion schreiben. Aber mit einem simplen contains() kann ich nicht arbeiten, da der User über eine Nummer identifiziert wird.
Code:
public User getUser(String number) throws NoSuchElementException {
     
        Iterator it = userList.iterator();
        
        while (it.hasNext()) {
            User tempUser = (User)it.next();
            if (tempUser.getNumber() == number) {
                return tempUser;
            }
        }
        throw {	// kann man so nicht schreiben
            new NoSuchElementException("Error! User not in database");
        }
}
Wie löse ich das am besten? Danke.
 
Hallo!

Schau mal hier:

Code:
package de.tutorials;

public class Test17 {

	public User getUser(String number) throws Exception {
		User user = //findUser(number);
		if (user == null)
			throw new Exception("No User Found!");
		return user;
	}

	class User {

	}
}

gruß Tom
 
Hallo!

Natürlich geht das auch alles in einer Methode.
Itereriere über deine userListe und suche nach dem user mit den gewünschten Eigenschaften. Hast du ihn gefunden speicherst du ihn zwischen und beedest die Iteration. Wurde die Iteration beendet prüfst du die Variable in der du den User zwischengespeichert hast auf null. Ist sie null wirfst du eine Exception / Die weitere Methodenausführung wird abgebrochen. Andernfalls returnierst du einfach die Variable in der du den User zwischengespeichert hast. Fertig.

Gruß Tom
 
Zurück