Ich habe ein Problem mit der Übergabe von Variablen zwischen Klassen.Warum kann die zweite Klasse keine variablen Daten von der dritten Klasse bekommen?
Das Problem, das ich habe, ist, dass die zweite Klasse die variablen Daten aus der dritten Klasse nicht erhält, nachdem die erste Klasse den Wert auf die Variablen der dritten Klasse setzt.
Die Art, wie ich es gerne arbeiten würde, ist, dass ich eine Klasse (KlasseA) habe, wo es den Wert vom Benutzer erhält und die set-Methode die dritte Klasse aufruft, um den Wert auf die zweite Klasse zu setzen (classB) wird verwendet, um den Wert mit der get-Methode in der dritten Klasse abzurufen, und die dritte Klasse (ClassC) befindet sich dort, wo get- und set-Methoden gespeichert sind.
KlasseA Codierungsverfahren:
//method for 'add' button functionality
public void btnAddActionPerformed(java.awt.event.ActionEvent evt)
{
ArrayList<UserInfo> userobjList = new ArrayList<>();
//calling data field revelant text fields
int EmpNumber = Integer.parseInt(txtEmpNum.getText());
String EmpAccessType = txtAccessType.getText();
//creating the object to parse data to userinfo class
UserInfo user = new UserInfo(EmpNumber, EmpAccessType);
//setting the data to varibales in userinfo class
user.setEmpNumber(EmpNumber);
user.setEmpAccessType(EmpAccessType);
//adds the object to the arraylist
userobjList.add(user);
//creates the object to use the method for adding employee to system
AddEmpFunction addUser = new AddEmpFunction();
addUser.test();
}
Diese Klasse Benutzerinformationen erhält und setzt die Daten in der dritten Klasse
ClassB Verfahren zum Benutzer zu Codiersystem Zugabe:
//variables
int EmpNumber;
String AccessTypes;
//creation of object to be used throughout
UserInfo user = new UserInfo(EmpNumber, AccessTypes);
public void AddNewEmpLogin()
{
try
{
//SQL string command to be executed to add user login details
String addNewUserLogin = "insert into userLoginData(Username, accessType) values ("
+ user.getEmpNum() + ","
+ quotate(user.getEmpAccessType()) + ")";
//create the statement that will be used
Statement stmt=conn.createStatement();
//executes the addNewUser statement
stmt.executeUpdate(addNewUserLogin);
}
catch (Exception e)
{
//exception error message is shown
JOptionPane.showMessageDialog(null, "Error adding new User's details \n " + e, "Database Error", JOptionPane.ERROR_MESSAGE);
}
}
Diese Klasse Dort werden die Daten von der dritten Klasse erhalten und dann in MySQL gespeichert.
ClassC ist, wo die Get- und Set-Methoden sind:
private int EmpNumber;
private String EmpAccessType;
//constructor
public UserInfo(int EmpNumber, String EmpAccessType)
{
this.EmpNumber = EmpNumber;
this.EmpAccessType = EmpAccessType;
}
public int getEmpNum()
{
return EmpNumber;
}
public void setEmpNum(int EmpNum)
{
this.EmpNumber = EmpNum;
}
public String getEmpAccessType()
{
return EmpAccessType;
}
public void setEmpAccessType(String EmpAccessType)
{
this.EmpAccessType = EmpAccessType;
}
Die Daten sind vorbei sehr gut von classA zu Klasse C, aber die in classB zurückgegebenen Daten Whcih es zeigt Form Klasse C-null für die Zeichenfolge aufruft und 0 für die ganze Zahl.
Bitte könnte jemand bitte erklären wo mein Problem ist und wie ich das beheben kann. Ich habe viel über Methoden gelesen und gelernt und es gibt kein aktuelles Beispiel für das, was ich erreichen möchte.
Jede Hilfe wird sehr geschätzt. :)
danke für Ihre Hilfe. Ich sehe, wo mein Problem ist. Ich werde es Aussortieren. Danke, dass du mir das Problem aufgezeigt hast. Sehr geschätzt :) – John