So i have a bunch of enum's that all extend an interface:
public interface MyInterface {}
I then have several enums that extend the interface:
public enum A implements MyInterface {}
public enum B implements MyInterface {}
I want a function that will accept only enum's that extend this interface. I cannot do:
public void MyFunction(MyInterface input)
because, inside the function, I create an EnumSet using EnumSet.of(input). I cannod do
public <T extends Enum<T>> void myFunction(T input)
because, inside the function, I need to create a Map that needs to be passed to another function. So is there any type-safe way to do this w/o casting?
Edit: Corrected interface definitions.
You can give multiple bounds to your type parameter:
public <T extends Enum<T> & MyInterface> void myFunction(T input)
Note: You're missing return type of the method. I've given void
here. Change accordingly. Oh! And please follow Java naming conventions. Method name should start with lowercase letters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With