[ 戻る ]
Java読書会BOF「Javaコードアンチパターン」を読む会 第8回¶
日時 |
2026年9月26日(土) 10:00-17:00 |
場所 |
教育文化会館 第3会議室 |
出席者(敬称略) |
高橋(智)、吉本、遠藤、井上、岩室、高橋(徹)(記) |
本日は、p. 290 9.7 No.88:enum、アノテーション、クラスに対してgetClass()を使う から読み始めました。
第9章 その他のライブラリメソッド¶
9.7 No.88:enum、アノテーション、クラスに対してgetClass()を使う¶
9.8 No.89 文字列からブーリアンへの誤った変換¶
p.292 Boolean.getBoolean(String key) でシステムプロパティを取得できるとは知らなかった・・・
9.9 No.90:日付けフォーマットにおける誤った書式指定子¶
p.293 「大文字のYは週番号付きの年(week-numbering year」とあるが、2026-週番号 という意味ではない
例にある2021年は、1月4日が月曜日で、大文字Yを指定すると1月1日から3日までは、2020となる
Y 1文字では 2021, Y 2文字では 21(西暦末尾2桁)、Y 3文字、4文字では 2021, Y 5文字では 02021 となった
9.10 No.91:弱い参照やソフトな参照の意図しない失効¶
【宿題】ソフト参照でGCが走って、WeakReferenceのgetメソッドがnullを返すコード・手順を確立する
【宿題】Reference.reachabilityFence(obj) がコードの後ろに置かれているにもかかわらず機能するのはJavaコンパイラが何か特殊なコードを生成しているのか調べてみよう
9.11 No.92:世界が安定していると仮定する¶
p.298 BasicFileAttributesとあるが、ならば具体的なファイルシステム属性があるのか?
DosFileAttributesとPosixFileAttributesがある
【宿題】NTFSやMacで DosFileAttributesを使うとどうなるのか?
9.12 No.93:平行に更新されるデータ構造へのアトミックではないアクセス¶
第10章 単体テスト¶
10.1 No.94:assert文における副作用¶
10.2 No.95:不正な形式のアサーションメソッド呼び出し¶
10.3 No.96:不正な形式の例外テスト¶
10.4 No.97:テストメソッドからの早すぎる終了¶
10.5 No.98:単体テストでAssertionErrorを無視する¶
10.6 No.99:等値性の契約の検査にassertNotEquals()を使う¶
10.7 No.100:不正な形式のテストメソッド¶
付録A 静的解析用アノテーション¶
A.1 アノテーションパッケージ¶
「Maven座標」とあるがこれは何を指すのか?
Mavenではライブラリは、groupId、artifactId、verionの3つの要素(GAV)で構成される「座標(coordinates)」によって一意に識別される。
結局どれを使うのが良いのでしょう?
採用する静的解析ツール次第か・・・
A.2 アノテーションの種類¶
結局、スタンダードな静的解析用アノテーションはないですね
付録B 静的解析ツールの拡張¶
B.1 Error Proneプラグイン¶
自分で作るには厳しい・・・
B.2 SpotBugsプラグイン¶
【誤植】p.330 下側のコードブロック1行目 「Public」→「public」(先頭が大文字になっている)
B.3 IntelliJ IDEAプラグイン¶
訳者あとがき¶
次回¶
本書籍は今回で読了しました。次回は新しい課題図書となります。