我有兩個類,Teacher
和Pupil
。在Teacher
類中有一個Pupil
的數組列表(包含Pupil的實例)。 我想這樣做:訪問有關陣列列表中對象的信息
System.out.println(pupils.get(1).getName())
其中getName
從Pupil
類的方法。但是,pupils.get(1)
似乎並不作爲Pupil
,並且不會讓我調用此方法。我應該怎麼做?
我有兩個類,Teacher
和Pupil
。在Teacher
類中有一個Pupil
的數組列表(包含Pupil的實例)。 我想這樣做:訪問有關陣列列表中對象的信息
System.out.println(pupils.get(1).getName())
其中getName
從Pupil
類的方法。但是,pupils.get(1)
似乎並不作爲Pupil
,並且不會讓我調用此方法。我應該怎麼做?
Generics應該做的伎倆。如果定義pupils
作爲類型列表,然後get(int)
應返回Pupil
對象:
List<Pupil> pupils = new ArrayList<Pupil>();
// add some data to the list
System.out.println(pupils.get(1).getName());
您應該使用Generics。
這裏假設你的代碼的一些基本的東西。具體來說,學生是一個包含學生實例的班級。您可以使用getPupils()作爲List/Collection來獲取它們。
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())
}
學生是誰? – Ioan
定義爲學生:
List<Pupil> pupils = ...(some initialization)
或丟給學生:
System.out.println(((Pupil)(pupils.get(1))).getName())
你能發佈您的代碼? – McLovin
您的數組列表是否已輸入? – RNJ