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());
}
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>();
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
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...
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);
}
class Person sollte noch mit einer Metode
ergänzt werden :
public int compareTo (Object other){
Person otherPerson = (Person) other;
return name.compareTo(otherPerson.name);
}