假设我想声明一个名为A
的接口,它扩展了类List
。
如果我写作有什么区别
A<E> extends List
要么
A<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
someClass
是ArrayList
的子类,意味着它继承了ArrayList
的所有可访问字段和方法。
我知道如果我将ArrayList
替换为ArrayList<E>
,如果我调用someClass<String> object
它会将String
传递给超级类ArrayList
,那很好
但是我们坚持使用代码。现在,如果我调用someClass<String> object
,它就不会将String
传递给ArrayList
。那么现在,对象是raw
还是没有,它的字段和方法如何工作?
答案 0 :(得分: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
。