[英]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.