2014-02-16 3 views
0

У меня есть два класса: Teacher и Pupil. В классе Teacher имеется список массивов Pupil (содержащий экземпляры Ученика). Я хотел бы сделать что-то вроде:Доступ к информации об объектах в списке массивов

System.out.println(pupils.get(1).getName()) 

где getName является метод из Pupil класса. Однако pupils.get(1) не действует как Pupil и не позволит мне назвать этот метод. Как я должен это делать?

+0

Не могли бы вы опубликовать свой код? – McLovin

+0

Набирается ли ваш список массивов? – RNJ

ответ

1

Generics должен сделать трюк. Если определить pupils как список типов, то get(int) должен возвращать объект Pupil:

List<Pupil> pupils = new ArrayList<Pupil>(); 
// add some data to the list 
System.out.println(pupils.get(1).getName()); 
0

Вы должны использовать Generics.

Это предполагает некоторые основные сведения о вашем коде. В частности, что ученики - это класс, содержащий ученические инстанции. Чтобы вы могли получить их с помощью getPupils() в виде списка/коллекции.

ArrayList<Pupil> pupilsList = new ArrayList<Pupil>(); 
for (Pupil p : pupils.getPupils()){ 
    // add all pupils 
    System.out.println("Adding " + pupilsList.add(p)); 
} 

for (int i=0; i < pupilsList.size(); i++){ 
    // print all pupils 
    System.out.println("Name: " + pupilsList.get(i).getName()) 
} 
+0

ученики есть кто? – Ioan

0

Определить учеников, как:

List<Pupil> pupils = ...(some initialization) 

или бросить его Ученика:

System.out.println(((Pupil)(pupils.get(1))).getName()) 
Смежные вопросы