package p; public enum TestEnum { FIRST_ENUM("first type", new SomeClass(), new OtherEnumType[] { OtherEnumType.FOO }), SECOND_ENUM("second type", new SomeClassOtherClass(), new OtherEnumType[] { OtherEnumType.BAR }), THIRD_ENUM("third type", new SomeThirdClass(), new OtherEnumType[] { OtherEnumType.BAZ }), FOURTH_ENUM("fourth type", new YetAnotherClass(), new OtherEnumType[] { OtherEnumType.FOOBAR, OtherEnumType.FOO, OtherEnumType.FOOBARBAZ, OtherEnumType.LONGERFOOBARBAZ, OtherEnumType.REALLYLONGFOOBARBAZ, OtherEnumType.MORELETTERSINHERE }); /* data members and methods go here */ TestEnum(String s, Cls s1, OtherEnumType[] e) { } } enum OtherEnumType { FOOBAR, FOOBARBAZ, FOO, LONGERFOOBARBAZ, REALLYLONGFOOBARBAZ, MORELETTERSINHERE, BAR, BAZ } class Cls { } class SomeClass extends Cls { } class SomeThirdClass extends Cls { } class SomeClassOtherClass extends Cls { } class YetAnotherClass extends Cls { }