下記のようなコードを多用するのをやめてほしいという話です。
|
|
動的型付け言語の経験が多くて、静的型付け言語の経験が浅い人にありがちな問題だと思っているのだけど、 クラスで書けるところをMapで書いてしまっているのを見かけます。
具体例を上げると、
|
|
上記のようなコードは、下記のように書いてほしいという話です。
|
|
なぜかというと今回のような使い方のMapだと、取りうる値が広すぎて型の保証が弱いからです。
MapのキーにString型ならなんでも入ってしまうので、問い合わせたときに不存在の可能性があります。 クラスで記述されている場合には、取りうるのがidとnameだけに限定されるので不存在になる可能性がありません(コンパイル時点で検出される)。