enum MyEnum {
A( 1, 2, 3, 4),
B(1, 2),
C(4, 5, 8, 8, 9);
private MyEnum( int firstInt, int... otherInts ) {
// do something with arguments, perhaps initialize a List
}
}
Есть ли с этим проблемы? Есть причины не делать этого?




Конечно, это совершенно законно. Нет причин не делать этого, если этого требует ваша программа.
Просто из любопытства ... не могли бы вы распечатать сообщение об ошибке? Я вообще не вижу причин, по которым это не должно работать. Фактически, я скопировал / вставил ваш код, и он скомпилировался и запустился прямо из коробки.
это действительно работает. Вы должны попытаться
private MyEnum(int... Ints )
С перечислениями вам нужно убедиться, что вы получаете к ним доступ таким образом, чтобы они были инициализированы. В большинстве случаев доступ - это все, что требуется
MyEnum bob = MyEnum.A;
Кажется, у меня возникают странные ошибки инициализации класса, когда я пробовал это ... поэтому я удалил аргументы var, и это сработало. (обратите внимание на то, что программа скомпилирована чисто в обе стороны). вероятно, сделал что-то, чего я не заметил ... да ладно, решение, которое я придумал, в конце концов лучше (я думаю).