[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12994] 議事録「 Effective Java( 第 2 版) 」を読 む会第 4 回



  高橋(智)です。
  議事録を送ります。

---------------------------------------------------
Java読書会 「Effective Java(第2版)」を読む会 第4回

日時: 2008/11/29(土) 10:00-17:00
場所: てくのかわさき 第5研修室
出席者: 遠藤、小棚木、松永、尾関、村山、高橋(智)、高橋(徹)、岩室、鈴木、柴田
        前山、吉本、根本


■Item18 抽象クラスよりインタフェースを選ぶ
□P92,93
@Overrideが、getメソッドとsizeメソッドに付いていないのは?
-->AsbtractList<T>の実装を参照するしかない
   -->@Overrideを付けてもOKなのか?
      -->コンパイラのバージョンに依存する
-->本書は、実装のないメソッドには@Overrideは書かない方針

□P94
staticメソッドの命名規約には何かあるか?

□P95
JDBCのインタフェースは、JDKのバージョンが上がるたびにメソッドが大量に増えている

インタフェースを細かく定義していくと良いのでは? 例:1インタフェース-1メソッド
-->別々のインタフェースで同じ名前のメソッドが有る場合には定義を書き分けられない
   -->メソッド名はできるだけ具体的にすべきか?
-->GWTの設計が同様の方針で変更されている


■Item19 型を定義するためだけにインタフェースを使用する
□P96
「名前空間を汚染されます」->「名前空間が汚染されます」の誤植か?


■Item20 タグ付きクラスよりクラス階層を選ぶ
□P98
初版にはCの共用体(union)の例が掲載されていたが、第2版では削除された


■Item22 非staticのメンバークラスよりstaticのメンバークラスを選ぶ
□P106
2行目の「どれとも」とは?
-->無名であることが他の文法とくらべて極めて特徴的ということか?
   -->"xxxx".length のような文字列もあるのでは?

「プロセスオブジェクト」は一般的な用語なのか?
-->処理の意味


■Item23 新たなコードで原型を使用しない
□P111
Collection<?>の「?」と「String」とは違う型なのでコンパイルエラーになる
-->addメソッドは引数として「E型」を要求しているので
   -->removeメソッドは引数として「Object型」を要求しているが...
      -->ジェネリックスのメソッドの引数の型は十分に考えて決めよう!!


■Item24 無検査警告を取り除く
□P114
ローカル変数の宣言に@SuppressWarningsを書けるが、Eclipseのエディタにはこのオプションが無い
-->自動でメソッド全体になってしまう


■Item27 ジェネリックスメソッドを使用する
□P126
二つ目の警告メッセージ「add」->「addAll」の誤植か?


■Item28 APIの柔軟性向上のために境界ワイルドカードを使用する
□P133
「PECS」は「ペックス」と発音する

<? super T>, <? extends T> への変更例を考える
-->宿題!!

□P134
「受け付させ」->「受け付けさせ」の誤植か?

明示的型パラメータの書き方は重要!!
-->staticメソッドなら Union.<Number>union(....);
   -->インスタンスの場合 this.<Number>union(....);
-->union<Number>(....); のような書き方はできないのか?
   -->できない!!

□P136
2番目のswapのほうが良い理由とは?
-->宣言が単純だから
   -->JDKのAPIでも2番目の書き方が多い


以上

次回 は Item30 から
---------------------------------------------------

-- 
高橋智宏