尝试调用从另一个类调用另一个方法的方法时的StackOverflowError

时间:2013-10-24 16:02:03

标签: java

我认为这种方法本身就是自称的。

这是我的代码:

public boolean isRaak(int rij, int kolom)
    {
        boolean raak = isRaak(rij, kolom); //this "isRaak" should refer to a method in another class, not sure how to do this...
        return raak;
    }

3 个答案:

答案 0 :(得分:1)

两种方式

如果这是一个实例方法,您需要创建instance并调用它。

public boolean isRaak(int rij, int kolom)
    {
        AnotherClass an =new AnotherClass();
        boolean raak = an.isRaak(rij, kolom);  
        return raak;
    }

如果这是静态方法

public boolean isRaak(int rij, int kolom)
    {            
        boolean raak = AnotherClass.isRaak(rij, kolom);   
        return raak;
    }

但是你的方法对我来说似乎是Utility方法,所以如果是这样的话,请选择静态方法。

在继续之前,请先阅读:

答案 1 :(得分:0)

错误非常明显。如果方法是静态的,则通过为classname添加前缀来调用方法,否则使用类的对象调用方法。

答案 2 :(得分:0)

我可以想到3种方法来实现这个目标:

  1. 创建AnotherClass的新实例并调用isRaak方法:

    public boolean isRaak(int rij, int kolom) {
        return new Anotherclass().isRaak(rij, kolom);
    }
    
  2. 重复使用AnotherClass的当前实例并调用isRaak方法:

    //field in the class initialized somewhere along your current class...
    AnotherClass anotherClass = ...
    public boolean isRaak(int rij, int kolom) {
        return anotherClass.isRaak(rij, kolom);
    }
    
  3. 如果方法在static中声明为AnotherClass,则直接从类中调用方法而不使用实例。

    public boolean isRaak(int rij, int kolom) {
        return AnotherClass.isRaak(rij, kolom);
    }
    
  4. 请注意,前两个方法假设AnotherClass的构造函数不需要接收参数,但这应该适合您的特定情况。