Не «обходите» ошибку - она не будет делать то, что вы хотите. Ошибка существует по уважительной причине.
Значения перечисления инициализируются перед любыми другими статическими полями. Если вы хотите сделать что-то вроде добавления всех значений в карту, сделайте это в статическом инициализаторе после всего остального:
import java.util.*;
public enum Foo
{
BAR, BAZ;
private static final Map<String, Foo> lowerCaseMap;
static
{
lowerCaseMap = new HashMap<String, Foo>();
for (Foo foo : EnumSet.allOf(Foo.class))
{
// Yes, use some appropriate locale in production code :)
lowerCaseMap.put(foo.name().toLowerCase(), foo);
}
}
}