这是获取错误的方法
public int getMaxTimeBetweenCustomers()
{
return Integer.parseInt(maxTimeBetweenCustomers);
}
这是调用上述^方法的run方法。如果我尝试在方法之外初始化变量它不起作用,所以我不知道该怎么做。
private void doSomething() throws InterruptedException
{
maxCustomers = myController.getMaxCustomers();
int myCounter=0;
String message;
while(myCounter < maxCustomers)
{
Customer customer= this.generateCustomer();
myServiceQueue = myServiceQueueManager.determineShortestQueue();
myServiceQueue.insertCustomer(customer);
myTime = System.currentTimeMillis();
myController.controllSetImages();
myCounter++;
System.out.println("my counter " + myCounter);
try
{
Thread.sleep(this.generateTimeBetweenCustomers());
}
catch(InterruptedException e)
{
message = e.getMessage();
System.err.println(message);
}
}
}
上面的方法doSomething()在run方法
中调用答案 0 :(得分:2)
您声明getMaxTimeBetweenCustomers()
方法导致程序抛出StackOverflowException,但如果此方法仅包含您显示的代码行,则无法执行此操作。还有其他事情正在发生。
可能还有其他事情就是你正在进行递归。我必须猜测,但也许doSomething()
直接或间接地从其包含的方法中调用,其中一种方法如下所示:
this.generateCustomer();
myController.getMaxCustomers();
myServiceQueueManager.determineShortestQueue();
myServiceQueue.insertCustomer(customer);
myController.controllSetImages();