当试图调用另一个类的另一个方法的方法时,StackOverflowError
我认为该方法正在调用自己或某物。当试图调用另一个类的另一个方法的方法时,StackOverflowError
这里是我的代码:
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;
}
的错误是很明显的。如果方法是静态的,则通过为类名加前缀来调用该方法,否则使用该类的对象调用该方法。
您能提供一个关于您的第二个建议的例子吗? –
请参考Suresh Atta发布的答案 –
两种方式
如果这是一个实例方法,你需要创建的是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
方法给我,所以要为静态方法,如果是的话。
在进一步讨论之前,喜欢阅读:
我能想到的3种方式来实现:
-
创建
AnotherClass
的一个新实例,请致电isRaak
方法:public boolean isRaak(int rij, int kolom) { return new Anotherclass().isRaak(rij, kolom); }
-
重用你
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); }
-
如果该方法在
AnotherClass
声明为static
,直接从类调用该方法不使用实例。public boolean isRaak(int rij, int kolom) { return AnotherClass.isRaak(rij, kolom); }
需要注意的是前两种方法假定AnotherClass
构造不需要接收参数,不过这应该是适用于您的具体情况。
'boolean raak = new AnotherClass()。isRaak(rij,kolom);' –