【问题标题】:How to call a getter from another class, when the object is not given?当没有给出对象时,如何从另一个类调用getter?
【发布时间】:2016-11-20 15:02:20
【问题描述】:

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

public class Puzzle {

private int [][] array;

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

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

}

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

public class Solver {

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

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

puzzle.solve();

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

【问题讨论】:

  • 你必须创建对象,才能使用类的方法。
  • 把谜题交给解题者。或解谜者。但是你不能调用一个类的实例方法,除非你有一个实例,并在那个实例上调用它们。

标签: java class static undefined getter


【解决方案1】:

你必须创建一个类的实例:

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

以下代码回答了您的问题,但没有多大意义。你必须问自己,我想从哪个对象中获取一个数组?你的代码中有这样的对象吗?比你必须传递这个对象来解决方法并在那个对象上调用getArray()

public class Solver {

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2018-02-22
    • 2016-06-10
    • 2012-05-06
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多