不同类型的争论?

Argument of varying types?

如何进行不同类型的论证?

我想做 m.add(5)m.add(float[][])。我该怎么做?

void add(? n) {
    for (int i = 0; i < cols; i++) {
           for (int j = 0; j < rows; j++) {
            data[i][j] += n;
           }
        }
    }
}

您正在寻找一种叫做方法重载的东西。您可以 google 获得大量结果,但基本上您需要定义该函数两次:

void add(float n){
  // do the thing
}

void add(float[][] n){
  // do the thing
}

理论上,您也可以采用 Object 参数,然后使用 instanceof 关键字来确定实际传入的类型,但这是一种更 hackier 的方法。