Use as constants means:
if you try to use a wrapper object in a switch loop as one of the case value, it would fail and the reason is
Because autounboxing converts
case int1:
into
case int1.intValue():
which is not a compile-time constant.
http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#5.1.8
also, one more thing
The reason it is not allowed is ,we can assign a null value (it is not necessary to assign a int value when we declare final variable) to the integer wrapper class and in such a case it will throw NumberFormatException if used in the case statement.
So it is designed in such a way to avoid this problem by not allowing wrapper class in case statement.