[英]Getter value keeps returning null Java
我試圖通過使用getter和setter方法傳遞對象。 當我使用System.out.println(“ test:” + this.admin);時,它可以工作 但是調用System.out.println(“為什么不工作?!” + getAdmin())時無法獲取對象。
這是程序的輸出:
test: entity.account.Admin@18a607c2
WHY YOU ARE NOT WORKING?! null
管理員主面板面板頁面
public class AdminMasterPanel extends JPanel {
protected JFrame myFrame;
private Admin admin;
public Admin getAdmin() {
return admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
System.out.println("test: "+this.admin);
}
/**
* Create the panel.
*/
public AdminMasterPanel(JFrame mf) {
// Set the frame to the program
myFrame = mf;
setLayout(null);
setBounds(0, 0, 1280, 720);
System.out.println("WHY YOU ARE NOT WORKING?! "+getAdmin());
}
}
從其他類調用setAdmin方法以設置管理對象:
AdminMasterPanel amp = new AdminMasterPanel(null);
amp.setAdmin(admin);
因為您在setAdmin()
之前調用getAdmin()
setAdmin()
。 您的構造函數甚至沒有獲得Admin
對象。 因此,您基本上沒有使用getAdmin()
任何調用。
您要做的是:
public AdminMasterPanel(JFrame mf, Admin admin) {
// Set the frame to the program
myFrame = mf;
setLayout(null);
setBounds(0, 0, 1280, 720);
this.admin = admin;
System.out.println("WHY YOU ARE NOT WORKING?! "+getAdmin());
}
或者,因為似乎您想使用對象方法setAdmin()
來設置admin。 您必須在構造函數中刪除Sysout
。
您的類構造函數在哪里初始化所有變量?
如果要忽略構造函數,請至少執行以下操作:
private Admin admin = new Admin();
出現nullPointerException
的原因是,您嘗試訪問不存在的對象。
有關類和對象的速成課程:
Admin admin; //Doing this DOES NOT create an object
上面沒有創建任何Admin對象。 它所做的是創建一個引用,該引用不指向任何內容(空)。
僅在使用new
關鍵字時創建對象。
new Admin(); //Create an Admin Object
Admin admin = new Admin(); //Create an Admin object and reference it with a variable named "admin".
所以這就是問題所在。
private Admin admin;
admin未在任何地方初始化,因此其默認值為null。 由於您已經在構造函數內部調用了getAdmin()
,因此將在調用setAdmin(admin)
之前執行它。
因此getAdmin()
返回null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.