[問題] UnsupportedOperationException?

看板java作者 (小安)時間16年前 (2010/01/25 13:25), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/4 (看更多)
其實我對前幾天那篇很有興趣, 可是不知道為什麼沒有後續,文章也不見了 @_@ 所以我就自己來冒名頂替一下吧。 // Returns a fixed-size list backed by the specified array. Arrays.asList(T... a) 上面這個 method 會回傳一個 Arrays$ArrayList 物件, ArrayList 繼承自 AbstractList, 因為沒有 override add() 與 remove(), 所以一但執行 add() 或 remove(), 就會丟出 UnsupportedOperationException。 看起來一切都合情合理, 畢竟 Arrays$ArrayList 骨子裡是 Array, 要是能支援 add, remove 那才奇怪的勒 (java.util.ArrayList 內部雖然也是 Array,但是他始亂終棄) 讓我感到疑惑的是,這樣設計的目地到底是什麼? List 介面明明有提供 add, remove, 實作他的類別卻只會丟出 UnsupportedOperationException, 這樣是一個合理的 OO 設計嗎? 如果不是,那是否有什麼其他的考量呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.183.199

01/25 16:00, , 1F
array 不能動態改變 size <- 這我覺得就是原因
01/25 16:00, 1F

01/25 16:02, , 2F
add -> 增加 size, remove -> 減少size
01/25 16:02, 2F

01/25 16:02, , 3F
原本的 array 都無法做出相對應的動作
01/25 16:02, 3F

01/25 16:07, , 4F
這些我知道呀 :)
01/25 16:07, 4F

01/25 16:30, , 5F
以前我們討論過啊 ?.? #19inc84F
01/25 16:30, 5F

01/25 16:37, , 6F
糟,我完全不知道 Orz 只好用當兵不在當理由了 XD
01/25 16:37, 6F

01/26 03:27, , 7F
我弄錯問題...我覺得合理, 現有功能的刪減在現實中也常見
01/26 03:27, 7F

01/26 03:28, , 8F
目的不外是拿現有的刪減比做新的省事吧?
01/26 03:28, 8F

01/26 20:08, , 9F
不過感覺好像比較算是應變措施, 而不是特別設計成那樣
01/26 20:08, 9F
文章代碼(AID): #1BNIj0lR (java)
文章代碼(AID): #1BNIj0lR (java)