Mailserver mit Java

Jonidas

Grünschnabel
Hallo,
ich versuche gerade als kleine Übung, um wieder mit Java anzufangen, einen Mailserver zu "bauen". Bis jetzt läuft das auch ganz gut, jedoch habe ich auf einmal eine "nullPointerExeption", wenn ich eine Nachricht verschicke. Ich weiß leider nich woran es liegt. Arbeite mit BlueJ und J2sdk 1.4.2.06. Hier ist mein Anfang:

Code:
import java.util.ArrayList; 

public class server extends ArrayList 
{
    

    public server()
    {
        
    }

   public void newUser(String Name, String Password, int ID)
    {
        user newUser = new user(Name, Password, ID);
        this.add(newUser);
    }
    
   public void writeMail(String Name, String Passwort, String Empfaenger, String Nachricht)
    {     
          user temp3 = null;
          
          for(int p = 0 ; p < this.size() ; p++)
          {
              user temp2 = (user) this.get(p);
              
              if (temp2.getName() == Empfaenger)
              {
                  temp3 = temp2;
                  break;
              }
              else
              {
                  System.out.println("ERROR");
                  System.out.println("Unbekannter Empfaenger!");
                  break;
              }
          }
                          
          for(int i = 0 ; i < this.size(); i++)
          
          {
               
              user temp = (user) this.get(i);
              if (temp.getName() == Name)
              {
                  if(temp.getPW() == Passwort)
                  {
                      temp.writeMail(temp3, Name, Nachricht);
                      break;
                  }
                  else
                  {
                  System.out.println("ERROR");
                  System.out.println("Das angegebene Passwort ist nicht richtig!");
                  break;
                  }
                      
              }
              else
              {
                  System.out.println("ERROR");
                  System.out.println("Der Angegebene Benutzer Existiert nicht!");
                  break;
              }
          }
                
                
       
    }
}
Code:
import java.util.ArrayList; 

public class user extends ArrayList
{
    private String myName;
    private String myPassword;
    private int myID;
    private ArrayList myMail;
    private user empf;
    private user ich;

    public user(String Name, String Passwort, int ID)
    {
        myName = Name;
        myPassword = Passwort;
        myID = ID;
    }
    
    public void writeMail(user Empfaenger, String Absender, String Nachricht)
    {
        mail newMail = new mail(Empfaenger, Absender, Nachricht);
        user empf = Empfaenger;
        
        empf.add(newMail); // Hier ist meine Mögliche "NullPointerExeption"
      
    }
    public String getName()
    {
        return myName;
    }
    

    
        public String getPW()
    {
        return myPassword;
    }
    

}
Code:
public class mail
{
    private user myEmpfaenger;
    private String myAbsender;
    private String myMail;
   

    public mail(user Empfaenger, String Absender, String Mail)
    {
        this.myEmpfaenger = Empfaenger;
        this.myAbsender = Absender;
        this.myMail = Mail;
    }
    
   
    public user getEmpfaenger()
    {
        return this.myEmpfaenger;
    }
    
    
        public String getAbsender()
    {
        return this.myAbsender;
    }
    
    
        public String getMail()
    {
        return this.myMail;
    }
}
 
class Server:
Code:
          user temp3 = null;
          
          for(int p = 0 ; p < this.size() ; p++)
          {
              user temp2 = (user) this.get(p);
              
              if (temp2.getName() == Empfaenger)
              {
                  temp3 = temp2;
                  break;
              }
              else
              {
                  System.out.println("ERROR");
                  System.out.println("Unbekannter Empfaenger!");
                  break;
              }
          }
Du landest vermutlich in dem else Zweig und damit bleibt temp3 null. Der Rest wird dann aber trotzdem ausgeführt.
Zeig doch mal die gesamte Exception samt StackTrace her.

Übrigends sollte man meines Wissens in Java alle Variablen mit einem Kleinbuchstaben beginnen, auch Parameter. Man kann zur Unterscheidung noch bei funktionslokalen Vvariablen und/oder (ich weiss, böse für jeden Informatiker) Klassenvariablen einen Unterstrich hinzufügen, um diese von Parametern zu unterscheiden. Manchmal ist es auch andersrum zu sehen, ich weiß jetzt nicht, wie da die "Norm" ist. Aber der erste Buchstabe sollte auf jeden Fall klein sein.

Gruß hpvw
 
Zuletzt bearbeitet:
Jonidas hat gesagt.:
Hallo,
ich versuche gerade als kleine Übung, um wieder mit Java anzufangen, einen Mailserver zu "bauen". Bis jetzt läuft das auch ganz gut, jedoch habe ich auf einmal eine "nullPointerExeption", wenn ich eine Nachricht verschicke. Ich weiß leider nich woran es liegt. Arbeite mit BlueJ und J2sdk 1.4.2.06. Hier ist mein Anfang:

Moin,
wenn Du schon mit einer IDE arbeitest, dann zeigt sie Dir auch an, an welcher Stelle die Exception fliegt.
(Ich kenne allerdings BlueJ nicht, Eclipse zeigt den StackTrace jedenfalls an)
 
Erstmal danke für die Hilfe. Funktioniert jetzt. Und mir war klar, dass es sicher 1000mal bessere Mailserver in java gibt. Aber wie schon oben zitiert war es eine Übung. Auch wenn mein kleingeistiger Cousin der hier Moderator ist, dann vieleicht wieder sagt, dass ich damit das Rad neu erfinde. :D
Nochmals vielen Dank.
mfG
Jonidas
 
Zurück