Java中的通用ArrayLists

时间:2016-12-03 20:18:18

标签: java generics arraylist

我正在制作一个每个级别都有不同机制的游戏,但我希望将所有输​​入处理,渲染等保存在一个地方。我的方法是让Level类包含所有需要的方法,然后每个级别都是它自己的类IntroBossRoom等)extends Level并覆盖方法更改每个需要更改的部分,而不必复制每个类的Level的所有内容。 我有一个LevelManager类,它将保存所有对级别的引用,我想使用ArrayList来执行此操作。

我在尝试声明并实例化变量时,尝试使用ArrayList<Level>ArrayList<?>ArrayList<? extends Level>ArrayList<? instanceof Level>。我尝试过的任何东西似乎都没有用。 Java是否有这样做,或者我应该将每个Level作为变量?

对于文本块感到抱歉,我是SO的新手,并且不知道更好的说法。

1 个答案:

答案 0 :(得分:1)

它应该是直的。这是一个小例子。

基类:

public abstract class Level{
  ....
}

编辑:您可以将Level类声明为抽象,如果您认为它不应该(没有意义)或者它不能(至少有一种方法是抽象的)在您的实例化中应用。根据你的背景,很可能。

儿童班:

public class IntroLevel extends Level{
...
}

其他儿童班:

public class LevelOne extends Level{
...
}

您的关卡经理:

public class LevelManager{

  private List<Level> levels;

  // constructor
  public LevelManager(){
   levels = new ArrayList<Level>();
   levels.add(new IntroLevel());
   levels.add(new LevelOne());
   ...
  }

}