获取并设置返回Null

时间:2017-07-01 20:22:09

标签: java field getter-setter

我的获取和设置返回null 我认为我的Set方法缺少一些东西。

我的Authen.java:

public class Authen {   
    String sessionID;

    public void setSessionID(String sessionID) {
        this.sessionID = sessionID;
    }

    public String getSessionID(){
        return this.sessionID;
    }
}

我的设置方法:

        String id="1234";
        Authen at = new Authen();
        at.setSessionID(id);

当我记录sID

时,我的Get方法返回null
Authen at = new Authen();
String sID = at.getSessionID();

4 个答案:

答案 0 :(得分:0)

您正在重新声明at,这将删除您设置的任何值。

设置ID后,请勿创建新的Authen对象

所以改变这个:

String id="1234";
Authen at = new Authen();
at.setSessionID(id);

Authen at = new Authen(); // This is where you create a new EMPTY authen
String sID = at.getSessionID();

为:

String id="1234";
Authen at = new Authen();
at.setSessionID(id);

String sID = at.getSessionID();

答案 1 :(得分:0)

你应该使用如下......

String id="1234";
Authen at = new Authen();
at.setSessionID(id);
String sID = at.getSessionID();

无需续订。

答案 2 :(得分:0)

您的sID为空的原因是,当您在第二次Authen at = new Authen();声明'at'对象时,您'新'是一个全新的对象。
如果要正确获取sID,则无需再次初始化Authen。 只是做:

String id="1234";
Authen at = new Authen();
at.setSessionID(id);
String sID = at.getSessionID();

答案 3 :(得分:0)

如果需要,可以将Authen实例从A类转移到B(假设A类创建B的实例):

class A {
    private void aMethod() {
        String id="1234";
        Authen at = new Authen();
        at.setSessionID(id);
        ...
        B b = new B(at);
    }
}

class B {
    private Authen authen;

    public B(Authen at) {
        this.authen = at;
        ...
    }

    private void anotherMethod() {
        String sID = this.authen.getSessionID();
        ...
    }
}

显然这段代码并不完整,只是为了展示主要想法 - 而且只是众多可能中的一种。