如何在java中访问类数组变量?

如何在java中访问类数组变量?,java,Java,所以我有一个类数组,至少我认为是这样,我是一个java和编程的初学者,它有一个嵌套类,包含两个字符串和一个字符 Employee[] emps = { new Employee(new Name("FirstName",'M', "LastName")), ... }; 我在employee中有setid、setwage等方法,需要使用数组替换当前的现有代码,代码如下: Employee emp1 = new Employee(new Name(&

所以我有一个类数组,至少我认为是这样,我是一个java和编程的初学者,它有一个嵌套类,包含两个字符串和一个字符

Employee[] emps = {
   new Employee(new Name("FirstName",'M', "LastName")), ...
};
我在employee中有setid、setwage等方法,需要使用数组替换当前的现有代码,代码如下:

Employee emp1 = new Employee(new Name("FirstName",'M', "LastName"));
Employee.setSize(Math.max(emp1.getName().toString().length()));
public static void empIDs(Employee empA,Employee empB,Employee empC,Employee empD){
       empA.setId(1); 
       ...
    }

    public static void printEmps(Employee empA,Employee empB,Employee empC,Employee empD){
        System.out.println("\nName"+" 
        ".repeat(Employee.getSize()-1)+"ID\tWage\tHours\tGross\tStart Date");
        System.out.println(empA);
        ...
    }

我使用for循环尝试了emps[I],但出现了一个错误:

Exception in thread "main" java.lang.IllegalArgumentException: count is negative: -24
    at java.base/java.lang.String.repeat(String.java:3565)
    at Employee.toString(Employee.java:146)
    at java.base/java.lang.String.valueOf(String.java:3367)
    at java.base/java.io.PrintStream.println(PrintStream.java:1047)
    at EmployeeDemo.main(EmployeeDemo.java:32)

我猜你的问题在于用对象迭代数组

它与基本数据类型完全相同。e、 g:

下面的方法获取一个包含员工的数组,并通过增强的for循环遍历所有员工

公共部门对雇员[]进行调查 { 工头雇员emp:雇员 { //emp是当前的员工,你可以用它做任何你想做的事情。 } } 或者使用一个简单的循环:

forint i=0;i.长度;我++ { 员工emp=员工[i]; //emp是当前的员工,你可以用它做任何你想做的事情。 }
注意:尝试读取错误堆栈,在那里它表示错误在字符串的.repeat方法上。它与循环无关,但上面的信息对您可能很重要。

什么是getSize方法?为什么它是静态方法?在.repeat之前打印Employee.getSize,你会明白的,你需要学会自己调试这是一种设置最大员工数的方法这是一种静态方法,因为我的教授说在.repeat之前在getSizeprint Employee.getSize上使用它,你会明白,您需要学习自己调试:这样做,并告诉我们它对它们都有多大的价值,以及它们都有一个非法参数的错误。这是程序代码的链接,如果有帮助的话。你猜不出问题出在哪里。请仅在确定问题是否存在并找到解决方案时回答。该代码将修复类似ArrayIndexOutOfBoundsException的问题,并且代码中没有使用en数组