通过传递åˆå§‹2值æ¥è¯»å–第三个枚举构造函数值

时间:2014-06-10 17:21:41

标签: java enums enumeration

我低于enum

public enum MyTest{
     READIT("1", "2", "3");
}

在我的ç­ä¸Šï¼Œæˆ‘有"1"& "2"动æ€åœ°å‡ºçŽ°ï¼Œä½†æ˜¯æˆ‘çš„ç­çº§ä¸çŸ¥é“枚举的å称,å³READIT,传递的åˆå§‹2值为"1"& "2"我想阅读第三个构造函数值,å³"3"

å¯ä»¥é€šè¿‡value()或valueOf(String s)æ–¹å¼é˜…读枚举。 String s将是READIT,我的ç­çº§ä¸çŸ¥é“。 value()将返回需è¦è¿­ä»£ä»¥èŽ·å–第三个值的数组。有没有办法读å–第三个或任何值å–决于传递给枚举的其他值。

1 个答案:

答案 0 :(得分:2)

以下是根æ®å…¶ä¸­çš„字段定ä½æžšä¸¾çš„方法。如果你有一个带å‚数的枚举,那些就会被存储在æŸä¸ªåœ°æ–¹ã€‚如果他们是ç§äººçš„,你å¯ä»¥ä½¿ç”¨åå°„æ¥èŽ·å–它们。

enum MyEnum {

    A("1", "2", "3"), B("4", "5", "6");

    final String s1;
    final String s2;
    final String s3;

    private MyEnum(String s1, String s2, String s3) {
        this.s1 = s1;
        this.s2 = s2;
        this.s3 = s3;
    }
}

public class MyEnumExample {
    static String readThirdValue(String first, String second) {
        for (MyEnum e : MyEnum.values()) {
            if (e.s1.equals("1") && e.s2.equals("2")) {
                return e.s3;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        String thirdValue = readThirdValue("1", "2");
        if (thirdValue == null) {
            System.out.println("no matching enum found");
        } else {
            System.out.println("found " + thirdValue);
        }
    }
}