假設我有一個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)
推
05/27 16:52, , 1F
05/27 16:52, 1F
推
05/27 21:07, , 2F
05/27 21:07, 2F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
2
2