2013-04-05 54 views
0

我很迷茫。这可能是简单的,但是.....我缩小了代码。我不相信我删除了任何相关的东西。除了一个大缺陷,一切看起来都很好。当我调用SetWhosOnline时,无论我的索引是什么,它似乎都设置了整个数组。Java - 一组对象 - 整组数组的设置索引

SetWhosOnline调用之前的我的手表环境窗口。

users[0].name = null 
    users[1].name = null 
    users[2].name = null 
    users[3].name = null 
    etc.... 

我打电话

SetWhosOnline("john",1); 

林期待看到...

users[0].name = null 
    users[1].name = john 
    users[2].name = null 
    users[3].name = null 

不幸的是 - 我得到的是...

users[0].name = john 
    users[1].name = john 
    users[2].name = john 
    users[3].name = john 

我的头发正在变成灰色!希望有人有一个答案在那里我....

CLASS 1

public class Login extends Activity { 
public static who[] users = new who[100]; 
} 

private static void SetWhosOnline(String user, int Index) { 
     users[index].SETname(user); 
} 

} 

CLASS 2

public class who 
{ 
private static boolean active; 
private static boolean online; 
private static String msg=""; 
private static int MsgCnt=0; 
private static String name; 
private static String IP; 
private static Date stamp=new Date(); 


public void init(int index) { 
     this.active = false; 
     this.online = false; 
     this.name = ""; 
     this.IP = ""; 
     this.stamp = new Date(); 
} //USER 


public final void SETname(String value) { 
    this.name = value; 
} 

回答

11

你的所有类领域谁是静态的,一流的,因此所有实例谁将共享相同的数据(即具有相同的名称,相同的IP等)。在这种情况下使用静态是没有意义的。

+0

这是小事情。非常感谢你。我对Java完全陌生。我知道这是愚蠢的,但我到了那里..再次谢谢你!!!!! – iBoston 2013-04-05 18:50:17