【发布时间】:2011-11-29 23:53:48
【问题描述】:
我想重写一个参数类型为Object的方法:
public void setValue(Object value) {
// ...
}
并使该参数具有泛型类型T:
@Override
public void setValue(T value) {
super.setValue(value);
}
如何在 Java 中做到这一点?
在 Eclipse 中出现以下错误:
Multiple markers at this line
- The type parameter T is hiding the type T
- Name clash: The method setValue(T) of type TextField<T> has the
same erasure as setValue(Object) of type JFormattedTextField but does not
override it
- The method setValue(T) of type TextField<T> must override or
implement a supertype method
【问题讨论】:
-
这可能就是你要找的stackoverflow.com/questions/239645/…
-
你不能让一个覆盖方法接受比它覆盖的方法更窄的类型,句号。
标签: java generics parameters type-erasure