java - 没有类型转换的不同类的数组列表?

标签 java arraylist

首先让我说,我确实搜索了几个小时,但没有找到我需要的东西。

我需要遍历类(应用程序)数组并使用当前应用程序的变量和方法。

public class App {
   public final Integer number = 0;
}

public class Player extends App {
   public final Integer number = 1;
}

public class Navigation extends App {
   public final Integer number = 2;
}

public class Phone extends App {
   public final Integer number = 3;
}


private ArrayList<App> apps = new ArrayList<App>();

apps.add(new Player());
apps.add(new Navigation());
apps.add(new Phone());

如果我愿意

apps.get(0).number //  = 0

我得到父(app)的号码

如果我把它投给玩家

(Player) apps.get(0).number //  = 1

我得到了想要的结果

现在,我想在应用程序的多个位置运行所有 N 个应用程序(可能超过 3 个) 但我不想这样做:

if (gun instanceof Player)
{
   Player p = (Player) apps.get(0);

}else if .... N times... in N places

我也不想让应用程序成为一个界面,因为我需要应用程序默认值。

没有必要使用arraylist,如果你有更好的想法。

提前致谢。

最佳答案

使用方法而不是最终变量。 App.getNumber(),然后每个类都可以覆盖该方法以返回适当的值。每个类都可以返回相同的常量,但是将常量定义为私有(private)的,并确保使用 getter 方法

关于java - 没有类型转换的不同类的数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16250476/

相关文章:

Java,从 Java 代码中控制 Linux 服务器的正确方法?

java泛型类型结论

java - 删除方法中的 ArrayList 元素

java - 只返回 ArrayList 中的最后一个元素

java - 在 Java 中迭代 Map

java - 无法使用单个连接执行多个准备语句(数据源)

java正则表达式括号

java - 在 Java 中向 ArrayList 添加和访问元素时出现问题

添加项目时Java ArrayList OutofBounds

java - 查询缓存如何处理标量结果?