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