I want to initialize a final field in different ways. Therefore I have created an enumeration type and perform a switch over it.
    public enum TYPE {
        A,
        B,
    }
I have also added a default case to the switch with an assertion to warn my fellow programmers in case they add a new enumeration constant and forget to update the switch.
        default:
            assert false : "missing TYPE detected";
Java however detects the flaw in my argument and complains that the blank field may not have been initialized. How should I deal with this situation?
public class SwitchExample
{
    public enum TYPE {
        A,
        B,
    }
    private final int foo;
    public SwitchExample(TYPE t)
    {
        switch (t) {
        case A:
            foo = 11;
            break;
        case B:
            foo = 22;
            break;
        default:
            assert false : "missing TYPE detected";
        }
        // The blank final field foo may not have been initialized
    }
}
 
     
     
     
    