Я только что начал работать с учебниками по Java, и решил немного поиграть с вложенными классами.Ссылка на внутренние экземпляры класса из внешнего класса
Рабочая копия, которую я создал, представляет собой класс Bicycle, который может иметь в нем не более чем один экземпляр класса Rider. Изнутри экземпляра Bicycle я хотел бы иметь возможность работать с экземплярами Riders.
В приведенном ниже примере у моего велосипеда есть ArrayList, который держит его Всадников, но я бы хотел, чтобы избежать необходимости поддерживать этот список, если это возможно.
Мой вопрос в том, что. Есть ли другой способ ссылаться на экземпляры Rider с Bicycle, или мне нужно сохранить свой собственный список?
//Outer Class contains zero or more Inner Classes
public class Bicycle {
//ArrayList of Inner Class instances
private List<Rider> Riders = new ArrayList<Rider>();
class Rider {
private String riderName;
protected Rider(String newRiderName) {
this.riderName = newRiderName;
}
protected String GetRiderName(){
return riderName;
}
}
//When creating an Outer Class, we can instantiate zero or more Inner Classes, by name
public Bicycle(String... startingRiderName) {
//Loop through all Inner Class instance names and create an Inner Class for each
for (String newRiderName : startingRiderName) {
Riders.add(new Rider(newRiderName));
}
}
//Public method to return an array of Inner Class instance names
public String[] GetRiderNames() {
String[] riderNames = new String[Riders.size()];
// Just in case we mess up and ask the ArrayList for an out of bounds index
try {
for (int riderIndex = 0; riderIndex < Riders.size(); riderIndex++) {
riderNames[riderIndex] = Riders.get(riderIndex).GetRiderName();
}
return riderNames;
} catch (IndexOutOfBoundsException e) {
return null;
}
}
}