作者neigence ()
站内java
标题[问题] 强制转型
时间Wed May 27 11:22:34 2009
假设我有一个class 叫A 而 B 跟 C 跟 D 是3种继承自A的class
今天我有一个
ArrayList<A> objArray;
我用ObjectOutputStream将objArray的东西写到档案後
过一会儿 我想要读出来了
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
Object obj;
while(ois.available > 0){
obj = ois.readObject();
SomeOne.doSomething(obj);
}
//----------------------------------------------------------------
class SomeOne{
public void doSomething(B b){...}
public void doSomething(C c){...}
public void doSomething(D d){...}_
}
这样子 compile当然是 .... 不会过 一定要强制转型
我一直想说在SomeOne.doSomething(obj)这一行变成
Class myClass = obj.getClass();
SomeOne.doSomething((myClass)obj); <--- 这样子 还是不行...
有没有辨法 不用if 做到这件事??? 将obj转成我想要的型态
我也不想用 instanceof
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.69.114.105
※ 编辑: neigence 来自: 210.69.114.105 (05/27 11:24)
※ 编辑: neigence 来自: 210.69.114.105 (05/27 11:36)
1F:推 zeat:我们是敎interface来实作多型, #1A1NAPYo 05/27 16:52
2F:推 bala045:visitor pattern 05/27 21:07