3
我有一個類型爲Object
的數組,其中我保存了不同類型的對象,我想在將它們從數組中取出後將它們轉換回它們的特定類型。所以當我拿出PrintWriter對象時,我嘗試PrintWriter(objArray[1][2])
,但這不起作用,我該怎麼做。java將對象作爲PrintWriter
我有一個類型爲Object
的數組,其中我保存了不同類型的對象,我想在將它們從數組中取出後將它們轉換回它們的特定類型。所以當我拿出PrintWriter對象時,我嘗試PrintWriter(objArray[1][2])
,但這不起作用,我該怎麼做。java將對象作爲PrintWriter
向下轉換將被做如下:
SubType instanceOfSubType = (SubType) instanceOfSuperType;
因此,在您的特定情況下,你可能想這樣做:
PrintWriter printWriter = (PrintWriter) objArray[1][2];
另請參閱Sun's tutorial about inheritance「轉換對象」一章(滾動大約一半)。
也就是說,收集一切在不透明的Object[]
是不是很理想。如果可以,只需在封裝的PrintWriter
字段下創建一個定製的類似於Javabean的類。例如。
public class MyBean {
private PrintWriter printWriter;
public void setPrintWriter(PrintWriter printWriter) {
this.printWriter = printWriter;
}
public PrintWriter getPrintWriter() {
return printWriter;
}
}
這樣你就可以收集他們在List<MyBean>
(瞭解更多有關集合,檢查此Sun tutorial on the subject)。
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();
// ...
}