私は以下を達成する必要があります (これは簡略化されたバージョンです):
enum Animals{
enum Cats{tabby("some value"), siamese("some value")},
enum Dogs{poodle("some value"), dachsund("some value")},
enum Birds{canary("some value"), parrot("some value")}
private String someValue = "";
private ShopByCategory(String someValue)
{
this.someValue = someValue;
}
public String getSomeValue()
{
return this.someValue;
}
}
次のようにこれらのアイテムにアクセスできるようにします。
string cat1 = Animals.Cats.tabby.getSomeValue;
string dog1 = Animals.Dogs.dachsund.getSomeValue;
string bird1 = Animals.Birds.canary.getSomeValue;
列挙型でこれを行おうとしている理由は、a) クラスをインスタンス化する、b) メソッド名の背後にある層の名前を隠す、または c) を使用することなく、各層にアクセスできる必要があるという事実です。 EnumSet を通過する反復子。
これはまったく可能ですか?列挙型の代わりに何を提案しますか?