我有一个非常愚蠢和基本的问题,但我似乎无法解决它。我试图在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类中必定存在使变量无效的东西。
有人可以指出我正确的方向吗? 万分感谢。
答案 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类中创建的那个。