コーディング中の Enum の読みやすさがとても気に入っています。最近、キーワードのリストを受け入れる必要があり、それぞれがアクションを実行するタスクに出くわしました。
キーワードの例: BREAKFAST、LUNCH、DINNER
だから私はこのようなものを書くことができるようにしたいと
String whatImGoingToMake = Keywords.BREAKFAST("banana").getPopularRecipe();
思います. ここでのアイデアは、バナナを材料として使った人気の朝食レシピを手に入れることです. リフレクションを使用すると機能するはずだと考えたので、これを考えました。
問題は、 getPopularRecipe() が静的ではなく、内部クラスでは許可されていないため、呼び出すことができないことです。
列挙型にこのようなことを強制し、代わりにクラスを使用することは一般的ではないというのは正しいですか? 次のコーダーがやって来てこれを理解するための最も簡単な実装は何ですか?
ここで遅いからかもしれませんが、私はこの時点で苦労しています。
可能であれば、IF ステートメントまたは switch ステートメントの長いリストから離れようとしています。私はそれらを見るのが好きではなく、どんな犠牲を払っても避けています。だから私は次のようなものを書きたくありません:
if (param.equals("BREAKFAST") {
//lookup in breakfast db
} else if (param.equals("LUNCH") {
//you get the idea - I dont like this since it can go on forever if we start adding BRUNCH, SUPPER, SNACK
}
仕事に取り掛かることに興味がある列挙型は次のとおりです。
public enum MyUtil {
BREAKFAST {
public String getPopularRecipe(String ingredient) {
//do something with ingredient
return recipe;
}
},
LUNCH {
public String getPopularRecipe(String ingredient) {
//do something with ingredient
return recipe;
}
}
}