Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当对象未给定时,如何从另一个类调用getter?_Java_Class_Static_Undefined_Getter - Fatal编程技术网

Java 当对象未给定时,如何从另一个类调用getter?

Java 当对象未给定时,如何从另一个类调用getter?,java,class,static,undefined,getter,Java,Class,Static,Undefined,Getter,对于下面的代码,我有一个带有相应getter的构造函数谜题 public class Puzzle { private int [][] array; public Puzzle(int[][] array) { this.array = array; } public int[][] getArray() { return this.array; } } 在另一个类中,我想要一个非静态的方法来解决这个难题。但是我需要使用

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

public class Puzzle {

private int [][] array;

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

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

}
在另一个类中,我想要一个非静态的方法来解决这个难题。但是我需要使用getter来获取2D数组

public class Solver {

    public void solve() {
        int[][] a1 = getArray();
    }
    //...More Code here ...
}
我希望它能被解决,这样在一个主方法中它就可以被这样调用

puzzle.solve();

但是,据说getArray()方法在类求解器中未定义。有什么方法可以解决这个问题而不必接受使用solve(puzzle)解决的难题吗?

您必须创建类的实例:

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 ...
}

您必须创建对象,以便使用类的方法。将谜题交给解算器。或者是解谜者。但是,除非有一个实例,并在该实例上调用它们,否则不能调用类的实例方法。