看板 java 關於我們 聯絡資訊
假設我有一個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)
zeat:我們是敎interface來實作多型, #1A1NAPYo 05/27 16:52
bala045:visitor pattern 05/27 21:07