2

申し訳ありませんが、正しい用語を使用しているかどうかはわかりませんが、基本的にEntityListはArrayListを拡張するというクラスを作成したいのですが、作成したインターフェースEntityInterfaceが基本的にEで使用されるようにしたいですすべての瞬間なEntityListので、手動で宣言する必要はありません。

コードに関しては、これを入れられるようにしたい

 EntityList entityList = new EntityList();

これと同等の結果を得る

 EntityList<EntityInterface> entityList = new EntityList<EntityInterface>();

ここから先に進む方法が本当にわかりません。ここに問題への私の試みがありました。

 import java.util.ArrayList;

//right now just a class that extends ArrayList designed to hold Entities.
public class EntityList<EntityInterface> extends ArrayList<EntityInterface> {

    EntityList(){

    }
}

問題を表示できる最善の方法は、arraylist がインスタント変数であるかのように表示することです。

 import java.util.ArrayList;

//right now just a class that extends ArrayList designed to hold Entities.
public class EntityList<EntityInterface>  {

    ArrayList al = new ArrayList();

    EntityList(){

    }
}

ただし、これは基本的に私が望むものであり、ここでも可変形式であり、形式を拡張しません。

 import java.util.ArrayList;

//right now just a class that extends ArrayList designed to hold Entities.
public class EntityList<EntityInterface>  {

    ArrayList<EntityInterface> al = new ArrayList<EntityInterface>();

    EntityList(){

    }
}

私がこのようなことをしたら、

 public class EntityList<? implements EntityInterface> extends ArrayList<?>  {

このスレッドに基づいて動作するはずです。 ジェネリック: ? の ArrayList Java で ISomeInterface を拡張します

ただし、このコードを変更してEclipseで試した後:

public class EntityList<E implements EntityInterface> extends ArrayList<E> {

および public class EntityList extends ArrayList { どちらも Eclipse でエラーをスローしていました。Java 6 を使用しています。使用しているサブバージョンがわかりません。それがエラーを修正する場合、私はJava 7を持っています。試してみます。

4

1 に答える 1

3

public class EntityList extends ArrayList<EntityInterface> {

于 2013-03-29T11:08:55.960 に答える