使用相同对象的列表创建枚举

时间:2015-12-29 09:16:55

标签: java list enums

我想创建一个包含一个attribut的枚举,一个扩展相同接口或相同抽象类的对象列表。 目标是在我的枚举的每个列表上有一个循环来动态调用方法。

public interface Regles {
    void verifier();
}

public class Regle01 implements Regles {
    @Override
    public void verifier() {
    }
}

public class Regle02 implements Regles {
    @Override
    public void verifier() {
    }
}

public enum ListRegles {
    ENUM1(Arrays.asList(new Regle01(), new Regle02())),
    ENUM2(Arrays.asList(new Regle01()))

    private List<Regles> regles = new ArrayList<Regles>();

    ListRegles(List<Regles> r) {
        regles = r;
    }
}

我该怎么办呢?

1 个答案:

答案 0 :(得分:4)

枚举:

public enum ListRegles {
    ENUM1(new Regle01(),new Regle02()),
    ENUM2(new Regle01());

    private List<Regles> regles ;

    ListRegles(Regles... regles) {
        this.regles = new ArrayList<>(Arrays.asList(regles));
    }

    public void verify() {
        for (Regles regle : regles) {
            regle.verifier();
        }
    }
}

将为Regle01和Regle02调用验证程序

ListRegles.ENUM1.verify();