扩展实现包含泛型的某些类的类的ArrayList不起作用?

时间:2013-01-09 09:50:52

标签: java class generics arraylist

有人知道为什么这不起作用?

public class ArrayList<E extends EXTDBinterface<T>> 
    extends java.util.ArrayList<E> implements List<E>,
    RandomAccess, Cloneable, java.io.Serializable {}

Eclipse抱怨T没有被解析为类型......是否无法为扩展EXTDBinterface<T>的类型扩展ArrayList类?关键是我想在课堂上使用T,但遗憾的是只有这个有效:

public class ArrayList<E extends EXTDBinterface> 
    extends java.util.ArrayList<E> implements List<E>,
    RandomAccess, Cloneable, java.io.Serializable {}

但是如何在运行时获取T的泛型类型EXTDBinterface

3 个答案:

答案 0 :(得分:3)

首先不起作用因为您没有设置类型T。 此外,您不需要再次扩展和实现所有内容,因为ArrayList已经拥有了这个。 写,例如:

class ArrayList<T,E extends EXTDBinterface<T>> 
extends java.util.ArrayList<E>{}

答案 1 :(得分:0)

  

如何在运行时获取EXTDB接口的泛型类型

鉴于Java使用type erasure,您无法做到这一点。如果您需要实际类型,那么您必须将其传递(通常作为Class - 类型参数)

答案 2 :(得分:0)

您必须将T定义为类

的类型参数
public class ArrayList<T, E extends EXTDBinterface<T>> 
    extends java.util.ArrayList<E> implements List<E>,
    RandomAccess, Cloneable, java.io.Serializable {}