Java 数组出现问题,无法向其添加任何内容

Java 数组出现问题,无法向其添加任何内容,java,polymorphism,Java,Polymorphism,我有一个母类用户和一个类,该类有一个用户数组作为atribute 在这个类中,我使用这个方法对ArrayList中的用户进行签名: public Class UserArray extends User public static ArrayList<User> users = new ArrayList<User>(50); public static void signUser(User u) { for(User f: users) { i

我有一个母类用户和一个类,该类有一个用户数组作为atribute 在这个类中,我使用这个方法对ArrayList中的用户进行签名:

public Class UserArray extends User
public static ArrayList<User> users = new ArrayList<User>(50);

public static void signUser(User u) {
    for(User f: users) {
        if(u.name.equals(f.name)) {
            System.out.println("User already exists");
        }
        else {
            users.add(u);
            System.out.println("User signed");
        }
    }
}
主要是这样调用这个方法的:

Controller.signUser(user object);
也尝试了不使用static,但我无法使用sign方法,也没有出现任何错误,但我的数组用户的大小为0,我可以添加任何内容。

您的代码:


吉特已经指出了你代码的问题,我只是想提供另一个可能的解决方案

可能的解决办法:


如果ifu.name.equalsf.name为true,我想您需要中断循环,而不是返回。中断循环以便添加两次相同的用户?
Controller.signUser(user object);
public Class UserArray extends User
public static ArrayList<User> users = new ArrayList<User>(50);

public static void signUser(User u) {
    for(User f: users) {
        if(u.name.equals(f.name)) {
            System.out.println("User already exists");
        }
        else {
            users.add(u);
            System.out.println("User signed");
        }
    }
}
public static void signUser(User u) {
      if(!users.isEmpty()){
        for(User f: users) {
            if(u.name.equals(f.name)) {
                System.out.println("User already exists");
            }
            else {
                users.add(u);
                System.out.println("User signed");
            }
        }
      } else{
      users.add(u.name);
      }
     }
public static void signUser(User u) {
        for(User f: users) {
            if(u.name.equals(f.name)) {
                System.out.println("User already exists");
                return;
            }
        }
        users.add(u);
        System.out.println("User signed");
     }