我在尝试访问两种不同方法之间的共享静态变量时遇到了这个问题......
假设环境应该是这样的:
方法 1 使用 RMI 接口 CommonUtils:
CommonUtils service = registry.lookup("chat"); //i'm sure that it works fine
service.register(String username);...
CommonUtils的实现:
public static ArrayList<ChatInterface> connectedChat=new ArrayList<ChatInterface>();
public static void register(String username){
connectedChat.add(username);
}
public static String getChatByUsername(String username){
for(ConnetctedChat temp:connectedChat)
if (temp.getUsername().equals(username))
return temp;
} ...
方法 2 直接从同一个库中调用 utils:
String username;
ChatInterface tmp=CommonUtils.getChatByUsername(username); <---- This is "the problem"
现在,当我尝试检查“ArrayList connectedChat”中的内容时,我看到了两个不同的结果:正确的是当我从第一个方法中获取信息时。否则,当我尝试从“方法 2”中取出一些东西时,它说 ArrayList 是空的,所以我不能再操作了(但从另一种方法来看,列表似乎不是空的!)。
我要解决的问题是一种聊天服务......它适用于客户端发送者 - 服务器 - 客户端接收者,但它似乎不适用于简单的服务器发送者 - 客户端接收者通信。