目前我正在检查对象是否是X,Y,Z的实例并应用了一些方法。 (这些只是插图:)
if (X instanceof Car || X instaceof Bus || ...) {
X.color = RED;
}
但是,如果我要比较300个物体(例如:汽车,公共汽车,自行车,火车,飞机......),我该如何分解呢?我想过制作一个List或一个数组,但初始化它似乎有点长:
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;
}
非常感谢任何建议,谢谢。
答案 0 :(得分:1)
我要么使用公共父接口。
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);
}