[問題] 強制轉型

看板java作者時間16年前 (2009/05/27 11:22), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/2 (看更多)
假設我有一個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
我們是敎interface來實作多型, #1A1NAPYo
05/27 16:52, 1F

05/27 21:07, , 2F
visitor pattern
05/27 21:07, 2F
文章代碼(AID): #1A7B7xs_ (java)
文章代碼(AID): #1A7B7xs_ (java)