У меня есть класс менеджера данных ManagementCompany, который хранит информацию о различных свойствах в массиве типов Property (определенный класс), который называется properties []. Один из методов класса предназначен для добавления свойств в этот массив и называется addProperty (Свойство p). Он должен взять данное свойство и добавить его в массив в первом доступном пространстве, если оно есть (как показано здесь:)
Property[] properties = new Property[5];
public int addProperty(Property p) {
if (isArrayFull()) //Method returns true if there is no space, false otherwise
return -1;
else if (p == null) //Make sure p is valid
return -2;
for (int i = 0 ; i < properties.length; i++) { //Loop through all elements in the array
if (properties[i] == null) { //If the space is empty
properties[i] = new Property(p); //Assign a new property to it
return i; //Return the index of the new property
}
}
return -10; //Should never happen, but need it to compile
}
Однако, когда я создаю и добавляю свойства в массив, только первое свойство добавлено. После добавления первого свойства программа не продолжает добавлять первое доступное пространство, а просто игнорирует их. Он не заменяет первый и не добавляет его в массив (который инициализируется длиной 5). Любые предложения о том, почему?
Тесты, которые я запускаю на нем:
ManagementCompany mgmCmp = new ManagementCompany();
Property p1 = new Property("Property 1");
mgmCmp.addProperty(p1);
Property p2 = new Property("Property 2");
mgmCmp.addProperty(p2);
System.out.println(mgmCmp.toString());
Результат: Свойство 1 null null null null