我有一个非常愚蠢和基本的问题,但我似乎无法回避它。我试图在三个类之间传递数据,所以我采用了以下方法:
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类中肯定有什么东西是对变量无效的。
谁能帮我指出正确的方向吗?谢谢你一百万。
发布于 2016-10-28 16:53:41
每次你打电话:
GroupChat chat = new GroupChat();您正在使用默认值(例如0、nulls)创建新对象。
如果要使用对象"B“,则必须从调用setter的函数中返回它。
例如。
public GroupChat getDataAfterButtonPress() {
GroupChat chat = new GroupChat();
chat.setParticipants(participants);
chat.setMyId(userId);
chat.setOtherID(id);
chat.setMessage(message);
return chat;
}然后,您可以在代码中稍后使用此对象:
GroupChat result = getDataAfterButtonPress();发布于 2016-10-28 16:53:15
如果没有完整的代码,很难得出结论。我看到的唯一问题是在这两种情况下都使用不同的实例。在C类中,创建一个新的GroupChat,而不是传递B类中创建的那个。
https://stackoverflow.com/questions/40309654
复制相似问题