簡體   English   中英

Java:調用方法,在一個類中初始化,在另一個類中給出 Nullpointerexception

[英]Java:Calling method, initialized in one class, gives Nullpointerexception in other class

我定義了一個 Logininfo 類來存儲用戶的電子郵件和密碼。我從登錄 GUI 獲取電子郵件和密碼。 有使用 setMethods 放入 Logininfo 類。 我正在將程序連接到 mysql 服務器(這里 mysql 不是問題)。 我需要 emailadres 和密碼,以便以后可以在其他 GUI 中使用它進行查詢。

這是 Logininfo 類

public class Logininfo {

public static Emailadres emailadres = new Emailadres();
public static Password password = new Password();

public static class Emailadres
{
    private String emailadres;

    public Emailadres()
    {
        emailadres = " ";
    }

    public void setEmailadres(String emailadres)
    {
        this.emailadres = emailadres;
    }

    public String getEmailadres()
    {
        return(emailadres);
    }

}

public static class Password
{

    private String password ;

    public Password()
    {
        password = " ";
    }

    public void setPassword(String password)
    {
        this.password = password;
    }

    public String getPassword()
    {
        return(password);
    }

}

}

在登錄 GUI 中,我使用 setMethod 來存儲電子郵件地址和密碼。

public class Login extends javax.swing.JFrame {

    Logininfo logininfo;
    Logininfo.Emailadres emailadres = new Logininfo.Emailadres();
    Logininfo.Password password = new Logininfo.Password();

    private boolean validate_login(String email,String wachtwoord) {

    emailadres.setEmailadres(email);
    wachtwoord.setPassword(password);

后來我嘗試在另一個班級中檢索電子郵件地址和密碼。

public class Account extends javax.swing.JFrame {

Logininfo logininfo;
Logininfo.EmailAdres emailadres;
Logininfo.WachtWoord password;

emailadres.getEmailadres(email);
password.getPassword(password);

我在這里得到一個空指針異常。 我知道您必須在登錄 GUI 屏幕中創建一個新的 Logininfo 實例。 但是,在 Account 類中,您不能創建另一個新實例。 公共類不應該用於此,我應該使用其他東西嗎?

任何幫助,將不勝感激

您的Login類中的email_adres是該類的實例字段,與Account類的emailadres實例字段完全無關。 這兩個指針指向內存中的不同位置。

如果您希望Account實例擁有來自Login實例的數據,則必須以某種方式將其提供給它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM