enumとアノテーション項目30・enumのコンストラクタはprivateにできるか?→できる。デフォルトでprivate扱い。・enumのメンバーはインナークラスかサブクラスか?→通常はenumに対応するクラスのインスタンス。個別のメソッドを定義したときは、サブクラスのインスタンス。(javapで確認できる)・enumにprivateなインスタンス変数を定義したとき、メンバー個別のメソッドからアクセスできるか?→privateならばアクセスできない。(メンバー個別のメソッドを定義したときはサブクラスからのアクセスになるから)・p150のサンプルコードで、何故2で割っているのか?→残業代の割増分を表す。→0.5を掛けるようにして、定数名を付けた方がいいのではないか?→よくない例ということで。→いや、さすがにそれはやらない。(by訳者)→でもこの本では「抽象ファクトリ」になってますよ。・p151のサンプルコードで、enumの入れ子になっているenumにstaticを付ける必要がないのは何故か?→classの入れ子になっているenumにstaticを付ける必要がないのと同じ。→詳細はJava言語仕様を確認するということで。・enumはserializeのために特別扱いされる仕組みになっている。長引数で定義されている。・EnumSetをイテレートすると、どの順序で出てくるか?→ordinalの順のはず。e)・Cのようなenumの範囲を超える使い方(メンバー個別のメソッド定義等)を知っている(活用している)人は少ない感じがする。遷移表の方がわかりやすくないか?→でも追加し易いのは後者では。→ぱっと見わかりやすいのは遷移表だけど、メンテナンスしやすいのは遷移ルールの記述。・enumの問題というより、状態遷移表vs状態遷移図のような感じが。例が無理矢理っぽい気がする。例は、列挙することが目的じゃなくて、オペレーションが目的なので、わかりにくいのではないか?・列挙の意味としてのenumから外れている。singletonの親戚?・enum要素やそのメソッドにJavaDocを記述すると、どう出力される?項目35・InvocationTargetExceptionは、invokeは正常に実行されたが、そこで呼ばれたメソッドが例外を投げた場合に発生する。メソッドが投げた例外は、getCause()で取れる。・p167の真ん中あたり、「英語では」だと意味が通らないので、「言葉に直すと」「意味するところは」の方がよいのではないか。@Testならば、メソッド名を考えなくて良い。内容を説明する文をそのままメソッド名にする。テストのメソッド名は日本語で書いて、そのまま納品物にできる。JUnit3から移行するほどのモチベーションが湧かない。Junit3で書いたテストコードもJUnit4で実行できる。・p168-169の例では、異常+異常の組み合わせを渡しているが、一般的には2つに分けるのではないか?項目36・interfaceを拡張したinterfaceに@Overrideを付けるときは?→メソッドを増やしてないつもりなのに、(typoなどで)メソッドが増えているとき、@Overrideが付いてるとエラーになる。敗だった?・マーカーアノテーションは、アノテーションの実装を変更しても再コンパイルなどが不要。・インターフェースは、変更すると、インターフェースに関連する全てを再コンパイルが必要。a.length」は問題があるのでは?→以下の組み合わせは正当と考えてよいと思われるので問題はないと思われる。オブジェクトの所有権が問題。(特に明示的にリソースを破棄(closeやdispose)する場合。