我有两个班级,Teacher
和Pupil
。在Teacher
类中有一个Pupil
的数组列表(包含Pupil的实例)。
我想做点什么:
System.out.println(pupils.get(1).getName())
其中getName
是Pupil
类的方法。但是,pupils.get(1)
似乎不会充当Pupil
,也不会让我称之为此方法。我该怎么办?
答案 0 :(得分: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());
答案 1 :(得分:0)
您应该使用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())
}
答案 2 :(得分:0)
将学生定义为:
List<Pupil> pupils = ...(some initialization)
或将其投放到Pupil:
System.out.println(((Pupil)(pupils.get(1))).getName())