2010-02-15 70 views
3

我有一個類型爲Object的數組,其中我保存了不同類型的對象,我想在將它們從數組中取出後將它們轉換回它們的特定類型。所以當我拿出PrintWriter對象時,我嘗試PrintWriter(objArray[1][2]),但這不起作用,我該怎麼做。java將對象作爲PrintWriter

回答

3

向下轉換將被做如下:

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(); 
    // ... 
}