Java - 对象数组 - 设置一个整数组的索引

iBo*_*ton 0 java arrays android

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

我在SetWhosOnline调用之前的环境窗口.

    users[0].name = null
    users[1].name = null
    users[2].name = null
    users[3].name = null
    etc....
Run Code Online (Sandbox Code Playgroud)

我打电话

    SetWhosOnline("john",1);
Run Code Online (Sandbox Code Playgroud)

我期待看到......

    users[0].name = null
    users[1].name = john
    users[2].name = null
    users[3].name = null
Run Code Online (Sandbox Code Playgroud)

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

    users[0].name = john
    users[1].name = john
    users[2].name = john
    users[3].name = john
Run Code Online (Sandbox Code Playgroud)

我的头发变灰了!希望有人对我有答案....

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);
}

 }
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

jko*_*acs 11

类中所有静态的字段,因此将共享相同数据的所有类实例(即具有相同的名称,相同的IP等).在这种情况下使用静态没有意义.