有人知道为什么这不起作用吗?
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 {}