适用于任何对象的方法

时间:2014-07-12 05:48:00

标签: java arrays methods override

我创建了一个方法,可以顺时针转动任何二维数组。

public boolean[][] rotateClockWise(boolean[][] array)   {
    if (array.length != array[0].length) return null;
    boolean[][] turned = new boolean[array.length][array.length];
    for (int i = 0; i < array.length; i++)
        for (int a = 0; a < array.length; a++)
            turned[i][a] = array[array.length - a - 1][i];
    return turned;
}

此方法目前仅适用于布尔数组。是否可以修改这个方法以应用于任何对象数组?

(P.S。我尝试在代码中将“boolean”更改为“Object”,但是程序无法编译,因为“找不到合适的方法”)

提前致谢!

1 个答案:

答案 0 :(得分:0)

你没有找到合适的方法&#34;错误,因为参数类型不匹配。您可以通过提供如下所示的Object参数来解决它。 但是,使用此新方法返回类型为Object[][],无论您在何处调用此方法,都必须将指定变量的类型更改为Object[][]。它甚至可能需要对您的代码进行一些进一步的修改。

public Object[][] rotateClockWise(Object twoDArray)   {
    Object[][] array = (Object[][]) twoDArray;
    if (array.length != array[0].length) return null;
    Object[][] turned = new Object[array.length][array.length];
    for (int i = 0; i < array.length; i++)
        for (int a = 0; a < array.length; a++)
            turned[i][a] = array[array.length - a - 1][i];
    return turned;
}