[英]Getter always return Null Value
好吧,這是我的代碼
package Entities;
public class Users {
String user_name;
String user_type;
public void setName(String un, String type) {
user_name = un;
user_type = type;
}
public String getName(){
return user_name;
}
public String getType(){
return user_type;
}
}
實際上這是一件基本的事情,很抱歉問你們。.在我的登錄界面中,我設置了用戶名和用戶類型
Entities.Users eu = new Entities.Users();
eu.setName(un, unType);
然后在主頁的其他地方,我想要這個用戶名和用戶類型,然后像這樣調用getter
Entities.Users eu = new Entities.Users();
System.out.println(eu.getName());
System.out.println(eu.getType());
但是它總是返回NULL !!!!!! 這是為什么..
問題是您正在打印之前創建user
類的新對象:
Entities.Users eu = new Entities.Users();
System.out.println(eu.getName());
System.out.println(eu.getType());
這使得一個新的參考eu
,這樣的屬性eu
,
String user_name;
String user_type;
是NULL
。
您應該執行以下操作:
Entities.Users eu = new Entities.Users();
eu.setName(un, unType);
System.out.println(eu.getName());
System.out.println(eu.getType());
但是請確保un
和unType
不為NULL
。
編輯:您可以執行以下操作:
Entities.Users user_1 = new Entities.Users();
Entities.Users user_2 = new Entities.Users();
user_1.setName("user_1", "user_type_1");
user_2.setName("user_2", "user_type_2");
System.out.println(user_1.getName()); // user_1
System.out.println(user_2.getType()); // user_type_2
發生的情況是您正在創建Entities.Users
類的新實例,並正在正確設置名稱。 但是,當您嘗試在班級的后面訪問它時,您正在創建一個不了解第一個實例的新實例。 試試這個
public class MyClass {
private Entities.Users eu = new Entities.Users();
private void myMethod() {
//not sure where these two params come from
eu.setName(un, unType);
}
private void myGetMethod() {
System.out.println(eu.getName());
System.out.println(eu.getType());
}
}
您的代碼應如下所示..
Entities.Users eu = new Entities.Users();
eu.setName(un, unType);
//where un and unType should not be null
//because you did not expecting null
//Example:
//eu.setName("Some Name", "Some Type");
System.out.println(eu.getName());
System.out.println(eu.getType());
這是因為您正在創建Entities.Users的新實例。 Entities.Users eu = new Entities.Users();
創建一個新實例,該對象將與其他Users對象不同。
因此,如果要使用同一對象,則需要將創建的對象傳遞到第二位。 或者將其持久保存在某個地方(數據庫,文件等),然后從第二個位置調用持久保存的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.