2

I would like to create an enum containing one attribut, a list of objects extending the same interface or the same abstract class. The objective is to have a loop on each list of my enum to call methods dynamically.

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;
    }
}

how can i do this please ?

1 Answer 1

4

enum:

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();
        }
    }
}

Will call verifier for Regle01 and Regle02

ListRegles.ENUM1.verify();
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.