如何将每个枚举值作为字符串列表?

时间:2015-05-08 20:59:17

标签: java enums

public enum CountryDefaultAddressEnum {
    // Country or Region , Contact Name, Street Address, City, State, ZIP Code
    US_CAL("US", "CA Address", "2065 Hamilton Avenue", " ", "San Jose", "CA",
            "95125"),
    US_SJ("US", "CA Address", "201 South Fourth Street", " ", "San Jose", "CA",
            "95112");

    private CountryDefaultAddressEnum(String countryOrRegion,
            String contactName, String streetAddress, String streetAddress2,
            String city, String state, String zipCode) {
        this.countryOrRegion = countryOrRegion;
        this.contactName = contactName;
        this.streetAddress = streetAddress;
        this.streetAddress2 = streetAddress2;
        this.city = city;
        this.state = state;
        this.zipCode = zipCode;
    }

public String getValue() {
    return String.format("%s %s %s %s %s %s %s", countryOrRegion, contactName, streetAddress, streetAddress2, city, state, zipCode);
    }
}

public static void main(String args[]) {
    for(CountryDefaultAddressEnum countryAddr : US_CAL.values()) {
      System.out.println(countryAddr + ": " + countryAddr.getValue());
    }
}

如何获取此枚举的所有字符串? 我想要这样的东西:

CountryDefaultAddressEnum.US_CAL.getValue()=("US", "CA Address", "2065 Hamilton Avenue",
                                             " ", "San Jose", "CA", "95125")

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

List<String> defaultAddresses = new ArrayList<String>();
for(CountryDefaultAddressEnum countryAddr : CountryDefaultAddressEnum.values())
{
    defaultAddresses.add(countryAddr.toString());

}

答案 1 :(得分:0)

如果我理解你的问题,你会想要一个返回带有枚举值的String的方法。

public static void main(String args[]) {
    for(CountryDefaultAddressEnum countryAddr : CountryDefaultAddressEnum.values()) {
        System.out.println(countryAddr + ": " + countryAddr.getValue());
    }
}

public enum CountryDefaultAddressEnum {

    // Country or Region , Contact Name, Street Address, City, State, ZIP Code
    US_CAL("US", "CA Address", "2065 Hamilton Avenue", " ", "San Jose", "CA",
            "95125"),
    US_SJ("US", "CA Address", "201 South Fourth Street", " ", "San Jose", "CA",
            "95112");

    private String countryOrRegion;
    private String contactName;
    private String streetAddress;
    private String streetAddress2;
    private String city;
    private String state;
    private String zipCode;

    private CountryDefaultAddressEnum(String countryOrRegion,
            String contactName, String streetAddress, String streetAddress2,
            String city, String state, String zipCode) {
        this.countryOrRegion = countryOrRegion;
        this.contactName = contactName;
        this.streetAddress = streetAddress;
        this.streetAddress2 = streetAddress2;
        this.city = city;
        this.state = state;
        this.zipCode = zipCode;
    }

    public String getValue() {
        return String.format("%s %s %s %s %s %s %s", countryOrRegion, contactName, streetAddress, streetAddress2, city, state, zipCode);
    }
}

结果:

enter image description here