- HOME >
- ポンコツPdM
ポンコツPdM

独立系のSIerに務めるSE,PM。 仕事の上で得たIT関連やプロジェクト運営関連の知識を書きます。 使用技術:Java,ウェブ関連全般,データベース全般 (どれも広く浅く)
学習と現場をつなぐ
クラスが何百個も並び、上から読んでいるうちに何を調べていたか分からなくなる。そんなときは「問い合わせ一覧を開く」のように、一つの操作から読み始めます。 先に結論 調べる操作と、読み終える条件を決める。最初からすべてのクラスを理解しようとしない。 画面→HTTP→Controller→Service→DBを追う。戻り値が画面へ届く経路も確認する。 入口・入力・出力・未確認を一枚に残す。読んだことと、実行して確かめたことを分ける。 この記事では架空の問い合わせ管理を使い、一つの機能の経路と調査メモの作り方を示 ...
AIによる要約Map.putは追加した新しい値ではなく、そのキーに以前入っていた値を返します。初回登録なら通常null、同じキーを上書きした場合は上書き前の値です。ただし、null値を許すMapでは、未登録と以前の値がnullだった場合を戻り値だけで区別できません。上書きを禁止したいならcontainsKeyやputIfAbsent、既存時だけ更新するならreplaceなど、意図に合うAPIを選びます。 この記事はXへ投稿したJavaクイズの詳しい解説です。まず問題を解きたい方は、Xの元ポストを開くことが ...
AIによる要約Optional.getは値が存在するときだけ使え、emptyならNoSuchElementExceptionです。直前にisPresentを確認すれば動きますが、値の取り出しと分岐が離れると読みづらくなります。必須ならorElseThrowで業務例外へ、既定値ならorElse・orElseGet、変換ならmap、存在時だけ処理するならifPresentを使います。Optionalを使っても、0件を正常・404・業務エラーのどれにするかは仕様として決める必要があります。 Optionalは値 ...
AIによる要約HashSet.addは、要素が新しく追加されSetの内容が変わった場合にtrue、同じ要素がすでに存在して追加されなかった場合にfalseを返します。重複を検知するだけならcontainsしてからaddする二段階処理ではなく、addの戻り値を使えます。ただし、自作クラスの重複判定はequalsとhashCodeに依存します。入力順を保つならLinkedHashSetも検討します。 この記事はXへ投稿したJavaクイズの詳しい解説です。まず問題を解きたい方は、Xの元ポストを開くことができます ...
AIによる要約Listや配列の有効な添字は0から要素数-1までです。sizeやlengthと同じ値を指定すると範囲外になります。固定位置のget、空リストの先頭取得、ループ条件の
「問い合わせに件名を追加してください。必須でお願いします」。入力欄を作れば始められそうでも、下書きの扱いや変更できる人、過去データへの影響が気になることがあります。 先に結論 依頼を利用者の操作に置き換える。誰が、いつ、何をできるかを確かめる。 決まっていることと未決事項を分ける。根拠・決める人・着手への影響を残す。 回答を資料とテストへ反映する。確認待ちの間に進めてよい範囲も相談する。 以下は架空の問い合わせ管理の例です。件名は必須・1〜100文字、状態は「下書き・受付済み・対応中・完了」、利用者は投稿 ...
AIによる要約Javaの配列は内容比較用のequalsをオーバーライドしていないため、a.equals(b)は同じ配列オブジェクトかを確認します。要素を順番に比較するならArrays.equals、多次元配列ならArrays.deepEqualsを使います。JUnitでもassertEqualsではなくassertArrayEqualsを選びます。配列をDTOやMapのキーに持たせる場合は、比較だけでなくhashCodeや防御的コピーも検討します。 この記事はXへ投稿したJavaクイズの詳しい解説です。ま ...
AIによる要約LocalDate.parse(text)は標準でISO形式のyyyy-MM-ddを期待します。2026/08/14や20260814を解析するにはDateTimeFormatterを指定します。形式が合っていても2月30日など存在しない日付はDateTimeParseExceptionです。表示用と入力用のフォーマッター、暦年のuuuuと年のyyyy、厳密な解析、空入力の扱いを分け、外部インターフェースごとに契約を固定します。 画面、CSV、外部APIでは日付の表記が異なります。Javaの ...
AIによる要約Map.ofはnullのキーと値を許可しないため、Map作成時点でNullPointerExceptionになります。getを呼んだ時ではありません。また、作成したMapへputやremoveもできません。HashMapはnullを許可しますが、キー未登録と登録済みnullの区別が必要になります。固定データならMap.of、値の追加・変更やnullを扱うなら要件に合う別の表現を選びます。 この記事はXへ投稿したJavaクイズの詳しい解説です。まず問題を解きたい方は、Xの元ポストを開くことがで ...
AIによる要約Booleanはtrue・falseに加えてnullを持てます。if(flag)やboolean変数への代入ではBooleanからbooleanへの自動アンボクシングが行われ、flagがnullだとNullPointerExceptionになります。trueだけを判定するならBoolean.TRUE.equals(flag)、必ず二値なら最初からbooleanを使います。nullを『未設定』『未回答』『対象外』として使うなら、三値の意味を明示し、既定値で潰してよいか確認します。 boolea ...