I am getting a warning in eclipse (the most recent version) for the following code.
public interface A<T> extends B<T> { public T getObject(); }
The warning appears at 'T' in 'A' and reads: "The type parameter T is hiding the type T".
The weird part is that the following code generates no errors or warnings.
public interface A extends B<T> { public T getObject(); }
But now I can't extend A while telling it what type T
is.
I am completely confused. Anyone know why this is happening?
Do you somewhere have a class or interface named T
, or are you using T
as a concrete type name somewhere instead of as a type parameter (which means you might have forgotten somewhere else, for example in an enclosing class, to specify that T
is a type parameter)? I can reproduce your problem with this:
class T { // A concrete type T } interface B<T> { // warning: The type parameter T is hiding the type T } interface A<T> extends B<T> { // warning: The type parameter T is hiding the type T T getObject(); }
If I remove class T
, it disappears.
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