JAVA:泛型类型类继承和泛型类型继承

标签 java generic-type-argument

先说一下我的情况:

我在第三方 SDK 中有一个具有泛型类型的基类:

public abstract class BaseClass<T extends BaseDataType> {
    public abstract class BaseDataType {xxx}
    public abstract int getCount();
    public abstract someMethod(T t);
}

在我的业务环境中,它扩展了BaseClass,如下所示:

public abstract class MyGeneralBaseClas<`how to write this???`> extends BaseClass {
    @Override public int getCount() {return some_list.size()};
    @Override public abstract someMethod(`how to write this???`);
}

在实际业务中,我编写我的类:

public class MyClass extends MyGeneralBaseClass<MyDataType> {
    @Override public someMethod(MyDataType type) {xxx}
}

public class MyDataType extends BaseClass.BaseDataType {
    xxx
}

但是代码无法编译。抱歉,我正在出差,没有 IDE 和开发工具,所以无法粘贴错误。但我认为如果你在 IntelliJ Idea 这样的 IDE 中写下这段代码,它会给出我遇到的错误。

那么这个案例怎么写:泛型类型的继承,以及使用泛型类型的类的继承。

我想要的是,在MyClass中使用具体类MyDataType而不是抽象BaseDataType

最佳答案

看来MyGeneralBaseClas应该有一个与BaseClass具有相同类型绑定(bind)的泛型类型参数:

public abstract class MyGeneralBaseClas<T extends BaseDataType> extends BaseClass<T> {
    @Override public int getCount() {return some_list.size()};
    @Override public abstract someMethod(T t);
}

关于JAVA:泛型类型类继承和泛型类型继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46213546/

相关文章:

c# - 泛型方法以不同于泛型类型的方式处理 IEnumerable

asp.net-mvc - mvc 操作方法中泛型类型参数的 dot net core 自定义模型绑定(bind)

Java Swing 或 AWT 重绘频率

java - 不可靠的 Hibernate 对象

swift - 我如何编写一个函数,它接受泛型类型参数,但根据泛型对象的类型返回不同的类型?

时间:2019-05-17 标签:c#genericclass: how can I restrict a member function to be used with specific types?

java - 为什么我不能直接对泛型类型列表使用 for-each 循环?

java - Spring Jersey : How to get rid of web. xml?

java - 在哪里实例化类

java - 按字典顺序对点数组进行排序