如何将ArrayList传递给另一个类?JAVA

如何将ArrayList传递给另一个类?JAVA,java,arraylist,javafx,Java,Arraylist,Javafx,我的代码有问题,我不太确定出了什么问题 (请忽略方法和类名。直到今天我才知道规则。) 我需要将ArrayList从一个类发送到另一个类 下面是我要将数组传递给的类 public class AdminUserController implements Initializable { UserData callClass = new UserData(); public void CreateUser(){ callClass.main(); out.println("Butt

我的代码有问题,我不太确定出了什么问题

(请忽略方法和类名。直到今天我才知道规则。)

我需要将ArrayList从一个类发送到另一个类

下面是我要将数组传递给的类

public class AdminUserController implements Initializable {

UserData callClass = new UserData();

public void CreateUser(){
    callClass.main();
    out.println("Button Clicked");
    ArrayTest(ArrayList <Users> myUsers);
}

public void ArrayTest(ArrayList <Users> myUsers){
    for (int i = 0; i < myUsers.toArray().length; i++) {
        if (myUsers.get(i) != null) {
            for (Users aMyUsers : myUsers) {
                if (aMyUsers != null) {
                    out.println("This should display 10 times");
                }
            }
        }
    }
}
公共类AdminUserController实现可初始化{
UserData callClass=newuserdata();
public void CreateUser(){
callClass.main();
out.println(“点击按钮”);
ArrayTest(ArrayList myUsers);
}
公共无效ArrayTest(ArrayList myUsers){
for(int i=0;i
此代码是独立的,不是完整的程序

CreateUser是一个JavaFX按钮(我不确定是否可以通过这种方式传递参数)

我认为问题在于如何激活ArrayTest方法

它需要通过按下按钮来激活

下面是ArrayList所在的类

        package BunnyCorp.Classes;

    import BunnyCorp.Controllers.AdminUserController;

    import java.util.ArrayList;

    public class UserData{

        public void main(){
        ArrayList <Users> myUsers = new ArrayList<>();

        Users myUsers0 = new Users(1000, "admin", "password", "N/A", " N/A", " N/A", "N/A", "N/A", "N/A", "N/A", "ADMIN");
        Users myUsers1 = new Users(1001, "lecturer", "capitalism", "Adam", "Smith", "127 High St", "Kirkcaldy", "KY5D8F", "03069990552", "16/06/1723", "STAFF");
        Users myUsers2 = new Users(1002, "president", "economics", "Ronald", "Reagan", "56 Bel-Air", "Los Caldy", "KY8BD2", "80865390552", "06/02/1911", "STAFF");
        Users myUsers3 = new Users(1003, "engineer", "memeword", "Tim", "Berners-Lee", "15 Westwood Place", "London", "KY9WWW", "07700900262", "08/06/1955", "STAFF");
        Users myUsers4 = new Users(1004, "polymath", "monalisa", "Leonardo", "da Vinci", "23 Via Mozza", "Florence", "FL9MLA", "07700900466", "15/04/1452", "MEMBER");
        Users myUsers5 = new Users(1005, "theoryman", "sexyphysics", "Richard", "Feynman", "Trump Tower", "New York", "NY5JEA", "03069990552", "11/05/1918", "MEMBER");
        Users myUsers6 = new Users(1006, "destroyerofworlds", "nuclearwar", "Julius Robert", "Oppenheimer", "20 Trinity Site", "New Mexico", "NKW194", "03069990828", "22/04/1904", "MEMBER");
        Users myUsers7 = new Users(1007, "crashtest", "dummy", "Samuel", "Alderson", "11 Marina Dey Rey", "California", "MDR238", "03069990011", "21/10/1914", "CASUAL");
        Users myUsers8 = new Users(1008, "Zucc", "dadada", "Mark", "Zuckerberg", "1456 Edgewood Drive", "California", "EWD238", "06505434800", "14/05/1984", "CASUAL");
        Users myUsers9 = new Users(1009, "bigmoney", "money", "Bill", "Gates", "1835 73rd Ave", "Washington", "WSA039", "2067093140", "28/10/1955", "CASUAL");

        myUsers.add(myUsers0);
        myUsers.add(myUsers1);
        myUsers.add(myUsers2);
        myUsers.add(myUsers3);
        myUsers.add(myUsers4);
        myUsers.add(myUsers5);
        myUsers.add(myUsers6);
        myUsers.add(myUsers7);
        myUsers.add(myUsers8);
        myUsers.add(myUsers9);

        AdminUserController UserCreator = new AdminUserController();
        UserCreator.ArrayTest(myUsers);
    }
}
BunnyCorp.类包装;
导入BunnyCorp.Controllers.AdminUserController;
导入java.util.ArrayList;
公共类用户数据{
公共图书馆{
ArrayList myUsers=新建ArrayList();
Users myUsers0=新用户(1000,“管理员”、“密码”、“不适用”、“不适用”、“不适用”、“不适用”、“不适用”、“不适用”、“不适用”、“不适用”、“不适用”、“管理”);
用户myUsers1=新用户(1001,“讲师”、“资本主义”、“亚当”、“史密斯”、“127高街”、“柯克卡迪”、“KY5D8F”、“03069990552”、“1723年6月16日”、“职员”);
用户myUsers2=新用户(1002,“总统”、“经济学”、“罗纳德”、“里根”、“56贝尔航空”、“洛斯卡迪”、“KY8BD2”、“80865390552”、“1911年2月6日”、“员工”);
用户myUsers3=新用户(1003,“工程师”、“梅默沃德”、“蒂姆”、“伯纳斯·李”、“西伍德广场15号”、“伦敦”、“KY9WWW”、“07700900262”、“1955年6月8日”、“员工”);
Users myUsers4=新用户(1004,“博学”、“蒙娜丽莎”、“莱昂纳多”、“达芬奇”、“23 Via Mozza”、“佛罗伦萨”、“FL9MLA”、“07700900466”、“15/04/1452”、“会员”);
用户myUsers5=新用户(1005,“理论家”、“性物理学”、“理查德”、“费曼”、“特朗普大厦”、“纽约”、“NY5JEA”、“03069990552”、“1918年5月11日”、“会员”);
用户myUsers6=新用户(1006,“毁灭世界”、“核武器”、“朱利叶斯·罗伯特”、“奥本海默”、“20三一网站”、“新墨西哥州”、“NKW194”、“03069990828”、“1904年4月22日”、“成员”);
Users myUsers7=新用户(1007,“crashtest”、“dummy”、“Samuel”、“Alderson”、“11 Marina Dey Rey”、“California”、“MDR238”、“03069990011”、“21/10/1914”、“休闲”);
用户myUsers8=新用户(1008,“Zucc”、“dadada”、“Mark”、“扎克伯格”、“1456埃奇伍德大道”、“加利福尼亚”、“EWD238”、“06505434800”、“14/05/1984”、“休闲”);
Users myUsers9=新用户(1009,“大富翁”、“金钱”、“比尔”、“盖茨”、“1835 73大街”、“华盛顿”、“WSA039”、“2067093140”、“1955年10月28日”、“休闲”);
添加(myUsers0);
添加(myUsers1);
添加(myUsers2);
添加(myUsers3);
添加(myUsers4);
添加(myUsers5);
添加(myUsers6);
添加(myUsers7);
添加(myUsers8);
添加(myUsers9);
AdminUserController UserCreator=新的AdminUserController();
UserCreator.ArrayTest(myUsers);
}
}
我做错什么了吗


我非常感谢您的帮助。我一直在网上寻找解决方案,但我一直碰壁。

不确定您在构造函数中调用main方法做了什么,但您的打印方法有几个问题

for (int i = 0; i < myUsers.toArray().length; i++) {
    if (myUsers.get(i) != null) {
        for (Users aMyUsers : myUsers) {
            if (aMyUsers != null) {
                out.println("This should display 10 times");
            }
        }
    }
}

for(int i=0;i

如果您想知道传入函数时数组myUser是否存在,请打印其大小,或者第一个元素也就足够了。调试可能有助于解决此类问题。

ArrayTest(ArrayList myUsers)
构造函数中的这一行是什么?你知道这一代码是递归的吗?你将继续输入构造函数..它将给你
StackOverflowException
ArrayTest(ArrayList myUsers);这一行应该被ArrayTest(myUsers)替换;其中myUsers是对象
for(Users aUser : myUsers){
  if(aUser!=null)
     System.out.println(aUser.toString());
}
for(int i = 0; i < myUsers.size(); i++){
   if(myUsers.get(i) != null)
      System.out.println(myUsers.get(i).toString());
}