我有这个代码,我在其中创建了一个类的对象MyClass.我在main方法中创建了一个对象.我想调用类的方法,但它StackovetrflowError在运行时给出.建议我克服错误的方法.
这是代码......
class MyClass {
public MyClass obj2 =new MyClass();
public void show()
{
System.out.println("in show method...");
}
void message()
{
System.out.println("in message method...");
}
}
public class AccessDemo {
public static void main(String[] args) {
MyClass obj1 = new MyClass();
obj1.obj2.show();
}
}
Run Code Online (Sandbox Code Playgroud)
我想打印的方法就是里面的消息show()和message().
你在这里进行了不必要的递归:
class MyClass {
public MyClass obj2 =new MyClass();
Run Code Online (Sandbox Code Playgroud)
你为什么要创建一个MyClass的实例里面的MyClass?这将无休止地和递归地重复,直到你的内存不足.
解决方案:不要这样做.摆脱obj2变量,除了使程序失败之外没有任何其他目的.而只需在main方法中创建的obj1变量上调用方法.