有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何替换“instanceof”函数中的变量

我的java项目中有以下类WheelsEngineBrake,它们都实现了CarPart

创建的对象存储在ArrayList<CarPart> parts变量中

我想检查三件事:

  1. 我的车有轮子吗
  2. 我的车有发动机吗
  3. 我的车有刹车吗

我可以编写hasWheels函数,然后再编写完全相同的代码,但用Engine替换轮子,然后用Brake替换轮子。这都是重复的代码。有没有一种方法可以将参数传递给像doesArrayContain(parts, Wheels)这样的函数


public boolean hasWheels(ArrayList<CarPart> parts) {

    for (CarPart part : parts) {
        if (part instanceof Wheels)
            return false;
    }

    return true;
}

像这样的

public boolean doesArrayContain(ArrayList<CarPart> parts, Type type) {

    for (CarPart part : parts) {
        if (part instanceof type)
            return false;
    }

    return true;
}

共 (0) 个答案