For example, I want to create a generic interface IEnum and make sure that every IEnum instance is also an enum constant, in other words, only enum type can implement IEnum. Does java support such feature or can it be achieved by any workaround? Can it be achieved by recursive Bounded Type Parameters?