Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Java: Was ist an meinem Code falsch???





Frage

Hallo! Mein Problem ist, dass jedes mal eine NullPointerException ausgelöst wird und zwar bei der Methode im Main "a.addPerson(p);" Ich hoffe ihr könnt mir helfen, wird wahrscheinlich in der Java-Klausur drankommen. Vielen Dank im voraus. Tanja [code] import java.util.*; class Person implements Comparable{ String name; String adresse; public Person(String n, String a){ this.name=n; this.adresse=a; } public String toString(){ return name+"\t"+adresse; } } class Adressregister{ private TreeSet register; public void addPerson (Person p){ register.add(p); } public void printRegister(){ Iterator it=register.iterator(); while(it.hasNext()) System.out.println(it.next()); } public void printNamen(){ Person p; Iterator it=register.iterator(); while(it.hasNext()){ p=(Person)it.next(); System.out.println(p.name); } } } public class test { public static void main(String []args){ Person p=new Person("Tanja", "München"); Person pe=new Person("Jerry", "Augsburg"); Person per=new Person("Jerry", "Augsburg"); System.out.println(p); Adressregister a=new Adressregister(); a.addPerson(p); a.addPerson(pe); a.addPerson(per); a.printRegister(); a.printNamen(); } } [/code]

Antwort 1 von tanja81

Sorry, irgendwie will der Code nicht komplett angezeigt werden und so bringts wenig

Antwort 2 von tanja81

auf zwei Beiträge jetzt aufgeteilt [Code]
import java.util.*;
class Person {
String name;
String adresse;
public Person(String n, String a){
this.name=n; this.adresse=a;
}
public String toString(){
return name+"\t"+adresse;
}}
class Adressregister{
private TreeSet register;
public void addPerson (Person p){
register.add(p);
}
public void printRegister(){
Iterator it=register.iterator();
while(it.hasNext())
System.out.println(it.next());
}

Antwort 3 von tanja81

 public void printNamen(){
		Person p;
		Iterator it=register.iterator();
		while(it.hasNext()){
			p=(Person)it.next();
			System.out.println(p.name);
		}}}
public class test {


Antwort 4 von tanja81

	
public static void main(String []args){
		Person p=new Person("Tanja", "München");
		Person pe=new Person("Jerry", "Augsburg");
		Person per=new Person("Jerry", "Augsburg");
		System.out.println(p);
				
		Adressregister a=new Adressregister();
		a.addPerson(p);    //hier Fehler angezeigt
		a.addPerson(pe);
		a.addPerson(per);
		a.printRegister();
		a.printNamen();		
	}} 


"Public static void main" will er oben nicht schreiben also gehts erst mit "args" los

Antwort 5 von DeluxeStyle

bin mir zwar nicht mehr ganz sicher, aber sollte das in der Klasse Adressregister nicht so aussehen

private TreeSet<Person> register = new TreeSet<Person>();

Antwort 6 von Tanja81

@DeluxeStyle
Du bist einfach genial!
Das lustige ist der Teil der falsch war stammt von unserem Prof.
Nochmals vielen Dank für die schnelle Antwort

Gruss Tanja

Antwort 7 von DeluxeStyle

bitte

musste das nämlich so ähnich auch gerade fürs Studium programmieren. Allerdings mit ArrayLists und da geht es nämlich genau so...

Antwort 8 von C.Weidemann

Altes Thema - jedoch :

class Person sollte noch mit einer Metode
ergänzt werden :

public int compareTo (Object other){
Person otherPerson = (Person) other;
return name.compareTo(otherPerson.name);
}

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: