Java枚举意义在哪_java – 多个if-else或枚举 – 哪一个更好,为什么?
这是原始代码:
public class FruitGrower {
public void growAFruit(String type) {
if ("wtrmln".equals(type)) {
//do watermelon growing stuff
} else if ("ppl".equals(type)) {
//do apple growing stuff
} else if ("pnppl".equals(type)) {
//do pineapple growing stuff
} else if ("rng".equals(type)) {
//do orange growing stuff
} else {
// do other fruit growing stuff
}
这是我如何改变它:
enum Fruits {
WATERMELON {
@Override
void growAFruit() {
},
APPLE {
PINEAPPLE {
ORANGE {
OTHER {
};
static void grow(String type) {
WATERMELON.growAFruit();
APPLE.growAFruit();
PINEAPPLE.growAFruit();
ORANGE.growAFruit();
OTHER.growAFruit();
abstract void growAFruit();
Fruits.grow(type);
我看到枚举代码更长,可能还没有像代码那么清楚,但我相信更好的是,有人可以告诉我,为什么我错了(或者也许我不是)?
UPD – 更改的源代码是更具问题的。我会改写这个问题:有没有使用枚举,而不是if-else呢?