Hi,
ich hab in der public_class eine static_class und letztere enthält drei
Methoden, welche allesamt einen Wert zurückgeben (also nicht vom Typ void).
Die erste Methode der static_class
public String ErrorMessage(Registrierung r)
hat eine if-Schleife, die einen RückgabeWert (pwd_error) einer anderen
Methode der static_class prüft.
Aber so wie es aussieht, hab ich irgendetwas falsch bzw. nicht
initialisiert, weil die System.out.println()-Methoden der
RückgabeWerte in der Main-Methode zwar alle Werte ausgeben, aber immer
dieselben.
Das Compilieren funktioniert, allerdings krieg ich eine
NullPointerException in folgender Zeile
if (eH.input_error_msg.length() == 0)
der main-Methode
Könnt Ihr mir helfen? Ich blick nicht mehr durch.
Vielen Dank
Stefan W.
Hier ist der Code:
//package peerlink;
import peerlink.connection.*;
import java.sql.*;
import java.util.*;
import java.text.*;
public class Registrierung
{
// Username und Passwort werden definiert
static String V_passwort=„kirstin“;
static String V_passwort2=„kirstin“;
static String V_username=„jklfsfj“;
public static void main(String[] args)
{
// Instanz von DBConnection wird generiert
DBConnection dbc = new DBConnection();
Registrierung r = new Registrierung();
ErrorHandling eH = new ErrorHandling();
//---- Rückgabewerte ----
System.out.println(eH.pwd_error);
System.out.println(eH.error_msg);
System.out.println(eH.input_error_msg);
System.out.println(eH.pwd_error_msg);
//eH.ErrorMessage();
if (eH.input_error_msg.length() == 0)
{
dbc.connect();
r.insertUserData(V_username, V_passwort, dbc);
dbc.disconnect();
}
else
{
System.out.println(eH.input_error_msg);
}
}
public void insertUserData(String V_username, String
V_passwort, DBConnection dbc)
{
[…]
}
-------- static class -----------------
// Hier werden Eingabefehler überprüft
static class ErrorHandling
{
boolean pwd_error;
String error_msg;
String input_error_msg;
String pwd_error_msg;
public String ErrorMessage(Registrierung r)
{
// Pwd-Vergleich wird überprüft
if (pwd_error)
{
pwd_error_msg = „Ihre Passwörter sind gleich“;
if (error_msg.length() != 0)
{
input_error_msg = „\r\nFehler!\r\n“;
}
else
{
this.input_error_msg = „1“;
return input_error_msg;
}
}
else
{
pwd_error_msg = „Ihre Passwörter sind
verschieden“;
return pwd_error_msg;
}
}
public boolean pwdVergleich(Registrierung r)
{
pwd_error = V_passwort.equals(V_passwort2);
return pwd_error;
}
public String inputError()
{
// Länge des 1. Passwortfeldes wird überprüft
if(V_passwort.length() 10)
{
error_msg =
„Ihr Passwort ist zu lang. Es darf nicht länger wie 10
Zeichen sein.“;
}
[…]
return error_msg;
} // end of InputError()
} // end of class ErrorHandling
} // end of Registrierung
werden diese Variablen auch nirgends initialisiert. ErrorHandling hat keinen Konstruktor und die Variablen werden auch nicht bei der Deklaration initialisiert, also sind sie null. Die println()s sollten eigentlich auch alle „null“ ausgeben (aber immerhin keine Exception werfen).