1

我想创建一个类MyMap<T>T 必须从哪里派生MyAbstractClass
MyMap然后将创建和管理任何类型的数组。MyMap.getPos(0,0)应该返回类型T为 Not的对象MyAbstractClass

我怎么做?

4

4 回答 4

10
MyMap<T extends MyAbstractClass>

它将强制泛型类型扩展MyAbstractClass,但否则它将完全像您刚刚T作为类提供一样工作。具体来说,您的函数将返回T.

于 2013-05-20T16:51:23.140 回答
5

像这样使用extends

MyMap<T extends MyAbstractClass>
于 2013-05-20T16:51:37.877 回答
4

把限制放在T

MyMap<T extends MyAbstractClass> {
    ....
}

要创建数组,您有两个选择。一种是在您的方法中创建一个MyAbstractClass[]并转换为。T另一种是Class<T>在您的构造函数中使用 a 并使用Array.newInstance(class, size).

于 2013-05-20T16:56:13.407 回答
3

您可以使用

MyMap<T extends MyAbstractClass>
于 2013-05-20T16:52:43.163 回答