2010-09-24 11 views
15

Tüm öğeler içeren bir numaralandırma, kullanıcı arabiriminde bir açılır menüde gösterilir. Kullanıcı arayüzünde sadece 5 alandan 2 tanesini gösterme ihtiyacımız var. Bu verileri almak için daha kolay bir yol ne olurdu, bir şekilde bir numaralandırma için aynı işlevlerden yararlanarak.Numaralandırma alt kümesi nasıl alınır

enum Color {RED, GREEN, BLACK, BLUE, YELLOW}; 

Biz belli bir kullanıcı arabiriminde yalnızca {KIRMIZI, MAVİ} göstermek için bir gereksinim var? enum bazı özel yöntemler içeriyorsa

EnumSet<Color> set = EnumSet.of(Color.RED, Color.BLUE); 

cevap

25

java.util.EnumSetEnumSet için bir iş gibi geliyor bakın Col or.values ​​(); // tüm öğeler.

Color.getSubSetOfValues ​​(); // alt kümesi

10
EnumSet.of(Color.RED, Color.BLUE) 

1

(örn RED ait Red instesd gösterilecek)

public enum Color { 
    RED("Red"), GREEN("Green"), BLACK("Black"), BLUE("Blue"), YELLOW("Yellow"); 

    private final String display; 

    private Color(String display) { 
     this.display = display; 
    } 

    @Override 
    public String toString() { 
     return display; 
    } 

    public static EnumSet<Color> getSubSetOfValues() { 
     return EnumSet.of(RED, BLUE); // return Red and Green 
     //return EnumSet.range(GREEN, BLUE); // return Green, Black and Blue 
    } 
} 

: