如何在未给出对象时从另一个 class 调用 getter?

How to call a getter from another class, when the object is not given?

对于下面的代码,我有一个带有相应 getter 的构造函数 Puzzle。

public class Puzzle {

private int [][] array;

    public Puzzle(int[][] array) {
        this.array = array;
    }

    public int[][] getArray() {
        return this.array;
    }

}

在另一个 class 中,我想要一个解决难题的非静态方法。但是我需要使用 getter 来获取二维数组...

public class Solver {

    public void solve() {
        int[][] a1 = getArray();
    }
    //...More Code here ...
}

我希望它得到解决,以便在 main 方法中可以这样调用它...

puzzle.solve();

但是据说 getArray() 方法在 class 求解器中未定义。有没有办法解决这个问题而不必接受使用 solve(puz​​zle) 解决的难题?

您必须创建 class 的实例:

public class Solver {

    public void solve() {
        int[][] a2 = { {1, 2, 3}, {1, 2, 3} };
        Puzzle puzzle = new Puzzle(a2);
        int[][] a1 = puzzle.getArray();
    }
    //...More Code here ...
}

下面的代码回答了你的问题,但意义不大。你得问问自己,我想从哪个对象中得到一个数组?你的代码中有这样的对象吗?比起您必须将此对象传递给 solve 方法并在该对象上调用 getArray()

public class Solver {

    public void solve(Puzzle puzzle) {
        int[][] a1 = puzzle.getArray();
    }
    //...More Code here ...
}