Java - 非泛型类扩展泛型类

标签 java class generics inheritance

我想知道如何(如果可能)创建一个类,它是泛型类的特定类型。

具体来说,我有一个 abstract class Stack<Type>实现了所有必要的方法,我想要一个 class StackIntegerStackInteger 的实例也是 Stack<Integer> 的一个实例.

我发现我可以做这样的事情:

class StackInteger {
    Stack<Integer> s;

    public StackInteger(int size) {
        s = new Stack<Integer>(size);
    }

}

然后实现所有Stack方法来包含s.method();但我想知道从Stack扩展时是否可以轻松做到这一点。

最佳答案

是的,在这种情况下,继承是比组合更好的解决方案,因为 StackIntegerStack .

只需供应Integer作为 extends 中的类型参数条款。

class StackInteger extends Stack<Integer>

但是,如果您不提供 Stack 之外的任何附加功能已经有了,那么这个类就没用了,你还不如直接用Stack<Integer> .

关于Java - 非泛型类扩展泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311052/

相关文章:

java - Spring boot 批处理 - 启动时出现 ClassNotFoundException

java - 使用 powershell 系统用户映射的驱动器无法被其他人访问

c++ - 作业帮助 : Prime Number Identifier C++

java - 常见 nlp 任务的效率

c++ - 类中的静态成员变量

java - 将单选按钮值从一个类传递到另一个类

带有静态泛型方法的java静态泛型hashmap

c# - 如何在泛型类中映射默认 LINQ 表达式

java - 链表的泛型实现和交换两个泛型对象

java - 无法在我的 web 应用程序中显示我的 pdf(不在阻止模式下)