- - PR -
java.util.Collection のメソッドがサブインターフェースの List にもあるのはなぜ?
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-11-29 17:18
私もいろいろと推察してみたところ、H2 さんと同じような見解になりました #私も確信はないですけど。。。^^; 1 番目については、List や Set が Collection のメソッドをオーバーライドすることによって、 より具体的な意味(振る舞い)を持たせようとしているのだと思われます。 #でも、その本当の目的はやはり Javadoc として出力することにあるのかなぁ? 2 番目については、ArrayList が AbstractList の拡張と言うよりは List のより完全な実装であるということを強調したいだけかも知れません。 #特に大した意味はないと思われます。別にあってもなくても困ることはないでしょうから [ メッセージ編集済み 編集者: 架空兎 編集日時 2003-11-29 18:45 ] [ メッセージ編集済み 編集者: 架空兎 編集日時 2003-11-30 19:59 ] | ||||
|
投稿日時: 2003-12-01 13:39
unibon です。こんにちわ。
質問者なのですが回答者になって気づいたことを書き足しますと、 メソッドの冗長さ(1)と、型の冗長さ(2)については、どちらも、 javap でクラスファイルを覗いて見ると、 冗長さが残ったままになる(ソースコード上だけの冗長さではなく、 バイトコード中でも冗長さが残る)ようです。 そのため、もしかしたら VM の作りによっては、 これにより速さが違ったりする可能性もあるのかも、とふと思いました。 #速くなる?遅くなる?違わない? | ||||
|
投稿日時: 2003-12-02 10:52
unibon です。こんにちわ。
架空兎さんがまとめられていたので便乗しますが、 私もこの考えに収束しました。 みなさまありがとうございます。 とくに(2)については、たとえば Eclipse で、List を選択して、 検索→参照、あるいは、検索→インプリメンター、 を実行した場合、もし ArrayList が List を implements していないと、 検索結果に ArrayList が現れなくなってしまう(ので使いづらい)ことに気づきました。 | ||||
