Java で、1 セットのカテゴリと、それぞれ 1 セットのサブカテゴリを含むデータ構造が必要だとします。たとえば、メイン カテゴリが「ブランド」(製品など) で、サブカテゴリが「製品」であるとします。ブランドと製品の組み合わせを価格などのデータにマッピングできるようにしたいと考えています。
「ブランド」と「製品」が単独である場合は、両方に列挙型を使用したいと思います。
ブランド+製品には、それに関連付けられた小さな単一のデータ(価格)しかありません
かなり大きなプログラム全体で何度もそれらを参照する必要があるため、それらに割り当てた文字列リテラル キーをタイプミスする可能性は基本的に 1 つです。
ただし、ブランド/製品の数が多すぎて、ブランド/製品の組み合わせごとに1 つの列挙型を使用できません (それぞれ約 20 のブランドと 10 個の製品があり、後でさらに追加する可能性があります)。次のような構造を使用できるようにしたいと思います。
getPrice(APPLE.IPOD)
getPrice(APPLE.MACBOOK)
getPrice(HERSHEYS.PEANUT_BUTTER_CUPS)
ある種のネストされた列挙型を使用する必要がありますか? もしそうなら、それはどのように実装されますか?
ボーナス情報: 「Java ネストされた列挙型」をグーグルで検索するのに少し時間を費やしましたが、何も思いつきませんでした。ここでチェックされた回答の最初のものやここでのthelosts の回答のような構造の問題は、同じ動作を示すカテゴリが多すぎて、非常によく似た列挙定義を何度も書き出すことができないことです。