0

なぜこれがうまくいかないのか誰かが知っていますか?

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

Eclipse は、T が型に解決されていないと文句を言います... 拡張する型の ArrayList クラスを拡張することは不可能ですEXTDBinterface<T>か? Tポイントは、クラス内で使用したいということですが、残念ながらこれだけが機能します:

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

Tしかし、実行時にジェネリック型を取得する方法はEXTDBinterface...?

4

3 に答える 3

3

type を設定しなかったため、最初は機能しませんT。また、ArrayList にはまだこれがあるため、すべてのものを再度拡張して実装する必要はありません。たとえば、次のように記述します。

class ArrayList<T,E extends EXTDBinterface<T>> 
extends java.util.ArrayList<E>{}
于 2013-01-09T09:58:18.553 に答える
0

実行時に EXTDBinterface のジェネリック型 T を取得する方法

Java がタイプ eraserを使用することを考えると、それを行うことはできません。実際の型が必要な場合は、それを渡す必要があります (通常は型指定されたClassパラメーターとして) 。

于 2013-01-09T09:51:53.047 に答える
0

Tクラスの型引数として定義する必要があります

public class ArrayList<T, E extends EXTDBinterface<T>> 
    extends java.util.ArrayList<E> implements List<E>,
    RandomAccess, Cloneable, java.io.Serializable {}
于 2013-01-09T09:52:04.543 に答える