假设我有:泛型质疑
public interface Action<S extends Shape> {
public void start(S shape);
}
为什么我得到以下?
public <S extends Shape> void performAction(Action<S> action, Shape shape) {
action.start(shape); // error: cannot supply Shape
}
换句话说,在未来,可能我的Shape
子类和Action
s表示对它们进行操作,如:
Action<Rectangle>
Action<Blob>
我想有一个统一的接口,可以适用Action
s到Shape
的一堆不同的子类。
+1。在原始代码中,不能保证“形状”是“行动”期望的任何类型。 – 2010-01-27 17:41:24
在这种情况下,我认为泛型只会让事情复杂化。 – jjnguy 2010-01-27 17:46:00
@jjnguy,在这种简单的情况下,似乎没有必要同意泛型。 – 2010-01-27 19:39:33