Если это может помочь кому-то еще - этот код никогда не работал. Я попытался использовать .add как предложенный комментарий, и он не работал, но с той же ошибкой. Я также попытался выделить 30 на уровне ArrayList, а также использовать код surecapacity.
В итоге получилось: я изменил класс Employee для хранения атрибутов, а не списка или массива.
Затем я создал отдельный класс файла CurrentEmployeeArray, который содержал всю эту информацию в массиве.
В еще одном файле я поместил класс AllEmpArrayList, который объединял всех текущих сотрудников, используя .add.
Я не знаю, почему ни одно из других решений не сработало - все теоретически должно ' мы сделали это Однако дизайн становится более надежным, когда вы разделяете все эти задачи. По мере продвижения вперед go я узнаю, что, хотя, с моей точки зрения, многие «простые» классы усложняют ситуацию, а не помещают все в массив сразу, многие простые классы очень помогают, когда дело доходит до отладки, компиляция и запуск Java программ. Я не знаю, будет ли это справедливо с течением времени - но это пока.
Сотрудник:
/**
* this method takes a String number, String name, String address, and String
* date and sends them to other methods to separate fields and
* creates a new employee array. Public methods include getters, setters, and
* toString.
* @author CaseyJayne
*
*/
public class NewEmployee {
private String employeeCode;
private String firstName;
private String lastName;
private String streetAddress;
private String city;
private String stateCode;
private String zipCode;
private String hireMonth;
private String hireDay;
private String hireYear;
private String [] currentEmployee = new String [10];
//Constructor
NewEmployee(String number, String name, String address, String date) {
setEmployeeCode(number);
NameParse nameParse = new NameParse(name);
setFirstName(nameParse.getFirstName());
setLastName(nameParse.getLastName());
AddressParse addressParse = new AddressParse(address);
setStreetAddress(addressParse.getStreet());
setCity(addressParse.getCity());
setStateCode(addressParse.getStateCode());
setZipCode(addressParse.getPostalCode());
DateParse dateParse = new DateParse(date);
setHireMonth(dateParse.getMonth());
setHireDay(dateParse.getDay());
setHireYear(dateParse.getYear());
}
}
Класс ArrayList
class AllEmployeesArray {
private ArrayList<String[]> allEmployeesList= new ArrayList<>();
AllEmployeesArray(String[] inputArray){
this.allEmployeesList.add(inputArray);
}
//default constructor
AllEmployeesArray(){
this.allEmployeesList.ensureCapacity(20);
}
public void addEmp(String[] inputArray){
this.allEmployeesList.add(inputArray);
}
public ArrayList<String[]> getAllEmployeesList() {
return this.allEmployeesList;
}
внутри основного:
String[] newEmpArray= {newEmp.getEmployeeCode(), newEmp.getFirstName(),
newEmp.getLastName(), newEmp.getHireDay(), newEmp.getHireMonth(),
newEmp.getHireYear(), newEmp.getStreetAddress(),
newEmp.getCity(), newEmp.getStateCode(), newEmp.getZipCode()};
allEmpArray.addEmp(newEmpArray);