扩展实现某些包含泛型的类的类的 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 {}

但是如何在运行时获得EXTDBinterface的泛型T…?

第一个不工作,因为你没有设置类型T。你也不需要再扩展和实现所有的东西因为ArrayList已经有了这个。写入,例如:

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

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

你不能这样做,因为Java使用类型擦除。如果需要实际的类型,则必须将其传递进来(通常作为Class类型的参数)

必须将T定义为类

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

最新更新