Даункинг выполняется следующим образом:
SubType instanceOfSubType = (SubType) instanceOfSuperType;
Таким образом, в вашем конкретном случае вы, вероятно, захотите сделать это:
PrintWriter printWriter = (PrintWriter) objArray[1][2];
Также см. Главу «Приведение объектов» в Учебное пособие Sun по наследованию (прокрутите около половины вниз).
Тем не менее, собирать все в непрозрачные Object[]
не совсем идеально. Если вы можете, просто создайте собственный Javabean-подобный класс с каждым инкапсулированным полем PrintWriter
. Э.Г.
public class MyBean {
private PrintWriter printWriter;
public void setPrintWriter(PrintWriter printWriter) {
this.printWriter = printWriter;
}
public PrintWriter getPrintWriter() {
return printWriter;
}
}
Таким образом, вы можете собрать их в List<MyBean>
(чтобы узнать больше о коллекциях, посмотрите этот Sun учебник по теме ).
List<MyBean> myBeans = new ArrayList<MyBean>();
MyBean myBean1 = new MyBean();
myBean1.setPrintWriter(printWriter1);
myBeans.add(myBean1);
MyBean myBean2 = new MyBean();
myBean2.setPrintWriter(printWriter2);
myBeans.add(myBean2);
// ...
, чтобы вы могли получить их следующим образом:
for (MyBean myBean : myBeans) {
PrintWriter printWriter = myBean.getPrintWriter();
// ...
}