Вы делаете вызов - при установке значений перечисления. Например:
public enum Person
{
FRED("Frederick", "Fred"),
PETE("Peter", "Pete"),
MALCOLM("Malcolm"); // No nickname
private final String nickname;
private final String name;
private Person(String name, String nickname)
{
this.name = name;
this.nickname = nickname;
}
private Person(String name)
{
this(name, name); // Just use the name as the nickname too
}
// getNickname and getName
}
В прошлом я использовал эту способность для различных проектов. Перечисления являются одной из самых приятных функций Java - безусловно, одной из немногих вещей, которые мне не хватает в Java при работе в C #. (Я уверен, что они могли бы быть реализованы еще более аккуратно, но ...)