我想知道如何(如果可能)创建一个类,它是泛型类的特定类型。
具体来说,我有一个 abstract class Stack<Type>
实现了所有必要的方法,我想要一个 class StackInteger
而 StackInteger
的实例也是 Stack<Integer>
的一个实例.
我发现我可以做这样的事情:
class StackInteger {
Stack<Integer> s;
public StackInteger(int size) {
s = new Stack<Integer>(size);
}
}
然后实现所有Stack方法来包含s.method();
但我想知道从Stack扩展时是否可以轻松做到这一点。
最佳答案
是的,在这种情况下,继承是比组合更好的解决方案,因为 StackInteger
是 Stack
.
只需供应Integer
作为 extends
中的类型参数条款。
class StackInteger extends Stack<Integer>
但是,如果您不提供 Stack
之外的任何附加功能已经有了,那么这个类就没用了,你还不如直接用Stack<Integer>
.
关于Java - 非泛型类扩展泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311052/