Java Generics :(扩展List )vs(扩展名单)[重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

假设我想声明一个名为A的接口,它扩展了类List。如果我写为A<E> extends ListA<E> extends List<E>有什么区别?从这两个类实例化的对象之间有什么区别?

问题仍然是有界类型参数的方法或类。喜欢

public <T extends aClass<T>> void methodName(T t)

public <T extends aClass> void methodName(T t)


澄清:

我知道什么是原始类型。假设我们有这个:

Class someClass<E> extends ArrayList

someClassArrayList的子类,意味着它继承了ArrayList的所有可访问的字段和方法。

我知道如果我用ArrayList替换ArrayList<E>,如果我调用someClass<String> object它会将String传递给超级类ArrayList,那很好。

但是我们坚持使用代码。现在,如果我调用someClass<String> object,它不会将String传递给ArrayList。那么现在,对象是否是raw以及它的字段和方法如何工作?

java generics type-parameter bounded-types
1个回答
0
投票
A<E> extends List

永远不应该使用,因为List是一种原始类型。

你应该使用:

interface A<E> extends List<E>

如果A应该是一些通用元素类型的List

要么:

interface A extends List<String> // or any concrete type instead of String

如果A应该是特定元素类型的List

© www.soinside.com 2019 - 2024. All rights reserved.