java将Object转换为PrintWriter

时间:2010-02-15 19:09:38

标签: java

我有一个Object类型的数组,我在其中保存不同类型的对象,我想在将它们从数组中取出后将它们转换回它们的特定类型。所以当我拿出PrintWriter对象时,我尝试PrintWriter(objArray[1][2]),但这不起作用,我该怎么做呢。

1 个答案:

答案 0 :(得分:3)

向下转发的方式如下:

SubType instanceOfSubType = (SubType) instanceOfSuperType;

因此,在您的特定情况下,您可能希望这样做:

PrintWriter printWriter = (PrintWriter) objArray[1][2];

另请参阅Sun's tutorial about inheritance中的“投射对象”章节(向下滚动一半)。

那就是说,收集一切不透明的Object[]并不是很理想。如果可以,只需在每个封装的PrintWriter字段下创建一个类似自定义Javabean的类。 E.g。

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