如何在未给出对象时从另一个 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(puzzle) 解决的难题?
您必须创建 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 ...
}
对于下面的代码,我有一个带有相应 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(puzzle) 解决的难题?
您必须创建 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 ...
}