Java読書会BOF「Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策」を読む会 第4回議事録

[ 戻る ]


=====================================================
Java読書会BOF「Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策」を読む会 第4回議事録
=====================================================

.. csv-table:: 開催概要

  "日時", "2026年5月30日 10:00 - 17:00"
  "場所", "てくのかわさき 第2研修室"
  "出席者(敬称略)", 高橋(徹)、遠藤、岩室、加藤、吉本、高橋(智)(書記)"

第5章:代表的な例外
================

5.1.1 nullの回避と防御的な検査
---------------------------
* P142 List.copyOf(),Set.copyOf(),Map.copy()メソッドの実装内容はどうなっている?
  * ランタイムのソースコードは?
  * 動作の検証をしてみよう
    * 検証用コードはAIに頼っても良いので、宿題!!

* P143 「Option型」は「Optional型」の誤植

* P144 図5.2と図5.3の日本語化されたダイアログボックスはどうやって作られたのだろうか?
  * 一見するとmacOSチックだが、WindowsOS上のSwing製だろうか?

5.1.3 null許容性アノテーション
---------------------------
* P150 図5.4のIntelliJ IDEAの自動推測機能は無料で利用できるのだろうか? 試してみよう
  * 宿題!!
  * インターネットに接続してAIの機能を搭載している?
  * ローカルのリソースだけで実現しているようだ

5.2 No.42 : IndexOutOfBoundsException
-------------------------------------
* P152 「off-by-oneエラー」を日本語で訳すと何とすべき?
  * 「off by one」は「1つずれる」という意味

5.3.3 異なるクラスローダー
-----------------------
* P164 「同じ名前を持つ別のクラス」は「同じ名前を持つ別のClassクラスのインスタンス」が適切だと思われる

5.4.2 無限再帰
-------------
* P169,P170 StackOverflowErrorのスタックトレースの内容から、それが無限再帰が原因であると判明できるものなのか?
  * 宿題!!

第6章:文字列
===========

6.1 No.45 : charの値が文字であると仮定すること
------------------------------------------
* P175 Character.isDigit()メソッドの実装の仕様はJavadocを見れば分かるのだろうか?
  * 準拠するUnicodeのバージョンに依存するのだろうか? 確認してみよう
    * 宿題!!

* P175 UTF-8で4バイトよりも大きなバイト数を必要とする文字がたくさんある
  * 例1:複雑なサロゲートペアの住民基本台帳で使われる「渡邊」の「なべ」の漢字で、対応したフォントも必要
    * https://wem.hum.fukuoka-u.ac.jp/~ynagata/euro/ipamjm.pdf
  * 例2:家族(family)の絵文字
    * https://lets-emoji.com/emojilist/emojilist-28/

6.2 No.46 : 予期しない大文字小文字の変換
------------------------------------
* P178 「roote locale」は「root locale」の誤植

6.3 No.47 : デフォルトロケールでString.formatを使う
-----------------------------------------------
* P179 図6.3のSwingの入力ダイアログボックスの「Input」や「Cancel」はOSやロケールで違ってくるのか?
  * 日本語ロケールだと「入力」と「取消」になる
  * macOSだと、OKとCancelのボタンの位置が逆になる

次回は、P183の「6.5 No49 : 正規表現ではなく通常の文字列を使う」から。


[ 戻る ]