2016-03-15 140 views
0

我有一個預先確定的有限值列表。每個值都必須映射到另一個值。我可以使用參數枚舉嗎?

例子:

AAAAA -> AZER 
BBBBB -> BVCX 

但我也有,這取決於一些參數:

CCCCC -> CPA1 
CCCCC -> CPA2 
CCCCC -> CPA3 
CCCCC -> CPA4 

我最初以爲用枚舉,但我怎麼在參數因素?

+0

通過向您的枚舉添加一個變量,並將其設置在它的構造函數中。 – Stultuske

+2

什麼邏輯'CCCCC'被映射到不同的值? –

+0

通過閱讀[this](https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html) –

回答

1

可以使用構造像下面圖值

enum Apple { 
    A(10), B(9), C(12), D(15), E(8); 

    private int price; // price of each apple 

    // Constructor 
    Apple(int p) { 
    price = p; 
    } 

    int getPrice() { 
    return price; 
    } 
} 
+0

根據某些參數,「CCCCC」不允許有四種不同的價格「。 – Thilo

0

可以添加方法來枚舉,爲了傳遞的參數,例如

enum MyEnum { 
    AAAAA { 
    @Override String mappedValue(Param parameter) { return "AZER"; } 
    }, 
    BBBBB { 
    @Override String mappedValue(Param parameter) { return "BVCX"; } 
    }, 
    CCCCC { 
    @Override String mappedValue(Param parameter) { 
     if (parameter.equals(something)) { 
     return "CPA1"; 
     } else if (parameter.equals(somethingElse)) { 
     return "CPA2"; 
     } else { 
     return "CPA3"; 
     } 
    } 
    } 
    ; 

    abstract String mappedValue(Param parameter); 
} 
相關問題