【发布时间】:2015-03-08 16:14:59
【问题描述】:
我在抽象类中有一个抽象泛型方法:
/**
* @param <Value>
*/
public abstract class TestAbstract<Value> {
public abstract <Value> void test(Value value);
}
现在我从这个类扩展并实现抽象的泛型方法 - 这是我的尝试,但这显然是错误的。
public class Impl extends TestAbstract<Integer> {
@Override
public <Integer> void test(Integer value) {
// value is instanceOf as java.lang.Object and not java.lang.Integer !
}
}
在test() 内value 被视为Object 而不是Integer...
我怎样才能覆盖这个方法,让我不得不使用'integer'-Class?
谢谢!
【问题讨论】:
-
Value是您项目中的实际类吗? -
没有。我希望 value 成为这个抽象类的参数...
-
@peddn:有点不清楚你所说的“被视为
Object”是什么意思,你能更具体一点吗? -
value 是“Object”的实例,而不是“Integer”的实例。
-
如果你的意思是
int,那对于泛型是不可能的。
标签: java generics inheritance abstract