public enum Direction {
NORTH,
EAST,
SOUTH,
WEST,
;
// Convenience names.
public static final Direction N = NORTH;
public static final Direction E = EAST;
public static final Direction S = SOUTH;
public static final Direction W = WEST;
}
допустимо, но "N"
не будет работать с автоматически сгенерированным методом valueOf
. То есть Direction.valueOf("N")
выдаст IllegalArgumentException
вместо возврата Direction.NORTH
.
Вы также не можете написать case N:
. Вы должны использовать полные имена в switch
es, значение которых равно Direction
.
Кроме этого, сокращенная форма должна работать так же хорошо, как и полная версия. Вы можете использовать Direction.N
в EnumSet
s, сравнить его на равенство Direction.N == Direction.NORTH
, получить его name()
(то есть "NORTH"
), import static yourpackage.Direction.N;
и т. Д.