Basically I want to create a method that has a signature like the following:
public <T> T getShellTab(Class<T extends ShellTab> shellTabClass)
but this isn't valid Java.
I want to be able to pass a class that is a subclass of ShellTab
and have an instance of that class returned.
public <T> T getShellTab(Class<T> shellTabClass)
works fine, but I would like to force shellTabClass
to be a subclass of ShellTab
.
Any ideas on how to pull this off?
Thank you.
Put the constraint in the initial generic parameter, like this:
public <T extends ShellTab> T getShellTab(Class<T> shellTabClass)
Note that you can have constraints on the generic type parameters of the method parameters (for instance, Tom Hawtin - tackline suggests making shellTabClass
into a Class<? extends T>
, although I don't think it makes a difference in this case).
But you can't constrain a type that has already been declared.
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