目前,我正在检查对象是否是X,Y,Z的实例,并应用一些方法。 (这些只是插图:)

if (X instanceof Car || X instaceof Bus || ...) {
   X.color = RED;
}


但是,如果我有300个要比较的对象(例如:汽车,公共汽车,自行车,火车,飞机等),我将如何分解呢?我想制作一个列表或数组,但初始化它似乎有点长:

Car car = new Car();
Bus bus = new Bus();
...
List<Transportation> list_t = Arrays.asList(car, bus, ...);
for (Transportation t : list_t) {
    if (X instance of t)
         X.color = RED;
}


任何建议将不胜感激,谢谢。

最佳答案

我要么使用一个公共的父接口。

class Car implements DisplayColour {
    public Color displayColor() {
          return Color.RED;
    }


或者,如果您知道所有可能的类,我将使用HashMap。

static final Map<Class, Color> classToColorMap = new HashMap<>();
static {
    classToColorMap.put(Car.class, Color.RED);
}

09-10 08:00
查看更多