Java在两个类之间传递数据

时间:2016-10-28 16:48:27

标签: java generics

我有一个非常愚蠢和基本的问题,但我似乎无法解决它。我试图在3个类之间传递数据,所以这就是我采用的方法:

A类

public class GroupChat {

    public String message;
    public String myId;
    public String otherID;

    public GroupChat() {

    }

    public String getOtherID() {
        return otherID;
    }

    public void setOtherID(String otherID) {
        this.otherID = otherID;
    }

    public String getMyId() {
        return myId;
    }

    public void setMyId(String myId) {
        this.myId = myId;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

B类 - 按钮点击生成数据

GroupChat chat = new GroupChat();
chat.setParticipants(participants);
chat.setMyId(userId);
chat.setOtherID(id);
chat.setMessage(message);

当我在GroupChat类中打印出这些变量的日志时,一切都很完美。

但是,当我尝试使用getter将数据提供给C类时,我需要它们,它们返回一个空值。

C类

GroupChat chat = new GroupChat();
chat.getMessage(),
chat.getItemView(),
chat.getMyId(),
chat.getOtherID());

我甚至尝试在GroupChat类中记录数据。当我使用setter输入数据时,一切都很好,但是当在getter上记录数据时,这些数据返回null。 GroupChat类中必定存在使变量无效的东西。

有人可以指出我正确的方向吗? 万分感谢。

2 个答案:

答案 0 :(得分:4)

每次致电:

public GroupChat getDataAfterButtonPress() {
    GroupChat chat = new GroupChat();
    chat.setParticipants(participants);
    chat.setMyId(userId);
    chat.setOtherID(id);
    chat.setMessage(message);
    return chat;
}

您正在使用默认值创建新对象(例如0,nulls)。

如果你想使用你的对象" B"你必须从你调用setter的函数返回它。

E.g。

GroupChat result = getDataAfterButtonPress();

然后,您可以稍后在代码中使用此对象:

{{1}}

答案 1 :(得分:0)

如果没有完整的代码,很难得出结论。我能看到的唯一问题是你在两种情况下都使用不同的实例。在C类中,您创建一个新的GroupChat而不是传递您在B类中创建的那个。