Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Getter总是返回空值_Java_Getter Setter - Fatal编程技术网

Java Getter总是返回空值

Java Getter总是返回空值,java,getter-setter,Java,Getter Setter,这是我的密码 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

这是我的密码

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());
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
但是要确保
un
unType
不是
NULL


编辑:您可以执行以下操作:

Entities.Users eu = new Entities.Users();
eu.setName(un, unType);
System.out.println(eu.getName());
System.out.println(eu.getType());
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=新实体.Users()创建一个新实例,此对象将不同于其他用户对象

因此,如果要使用相同的对象,则需要将创建的对象传递到第二个位置。
或者将其持久化到某个位置(db、文件等),然后从第二个位置调用持久化对象。

是否确定这些值不为null。。。您正在调用的
eu.setName(un,unType)使用检查您在此处传递的内容<代码>eu.setName(un,取消类型)
如果你要初始化一个新实例,你的
用户名
将是
null
如中所示,没有分配任何内容。在会话、请求或任何作用域中执行实例。看起来您正在创建一个新的
Entities.Users eu=new Entities.Users()
,该实例没有设置值。当我在“setName()”中打印值时,它会显示值。。但是当它不返回任何内容时……让我们假设如下…………我通过setName方法存储登录表单中的用户名和用户类型……然后在我的应用程序的其他地方我想要这些用户名和用户类型。。。那么,如果不从Entities.Users类创建obj,我应该怎么做呢@JLink如果您有其他问题,您需要在单独的帖子中向他们提问。以后也尽量避免。始终解释您试图实现的目标,然后创建简化的示例。这个答案从问题的当前版本解释问题,所以请考虑接受它(或者你喜欢的其他答案)。请以编辑的部分为例。