java - 创建多个子类对象

标签 java object methods for-loop subclass

我正在尝试通过 for 循环来实现“一波”敌人。基本上,当调用wave对象时,它接受一个int来设置wave中敌人的数量。每个敌人都有自己的类别,是“敌人”的子类。我所困扰的是如何在 Wave 构造函数中传递第二个参数来设置创建哪个敌人子类,例如在一种方法中创建 25 个“兽人”或 13 个“巨魔”。任何帮助将不胜感激。

最佳答案

听起来您想创建 Enemy 类的静态工厂方法,该方法根据参数创建新的 Enemy 对象。像这样的东西:

// EnemyType is an enum
public static Enemy createEnemy(EnemyType enemyType) {
   switch (enemyType) {
     case BASIC_MONSTER:
       return new BasicMonster();
     case ORC:
       return new Orc();
     case TROLL:
       return new Troll();
     case ..... // etc...
   }
}

注意,我会使用更简洁的参数,例如枚举,而不是 int,以确保传入的参数是正确的。否则,您可能会面临传递诸如 -24232 之类的无意义 int 的风险。

关于java - 创建多个子类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910185/

相关文章:

以泛型类作为参数的 Java 方法

java - 2 个 JVM 之间的低 CPU 使用率轮询架构

java - 无法在带有 MySql 的 JPA 实体中使用 java.time.LocalDate

Java,在数组中添加元素并同时循环遍历它

Javascript 在 console.log 之前更改对象中的键

C++ 线程错误 : no type named type

java - 在 servlet 中以编程方式调用过滤器(使用 jetty/spark 创建)?

PHP 类::为什么声明为新的?

java - 是否可以使用 DOM 从 XML 文件创建对象?

methods - 方法返回无效时的 Spring Integration Gateway 回复 channel