Suppose you have an enum with 3 values:
enum Colors { RED, GREEN, BLUE } You switch over all values of it in some method, thinking you've handled all cases:
switch (colors) { case RED: ... case GREEN: ... case BLUE: ... } Then later, you add a new value to the enum:
enum Colors { RED, GREEN, BLUE, YELLOW } And everything still compiles fine, except you're silently missing a case for YELLOW in the method. Is there a way to raise a compile-time error in such a scenario?
edit: Do not understand why this was marked a dupe of Can I add and remove elements of enumeration at runtime in Java. Since the answer there was "no", that means it should be possible to know at compile-time all values of an enum, and therefore what I'm asking for should be possible for the compiler/some code analysis tool to implement, right?
default: throw new UnsupportedOperationException();?