在使用Java的OOP中,我是一个新手,在这个社区的帮助下,我正在学习。
我已经构建了一个程序,该程序使用一个对象重复执行一项任务,该任务一遍又一遍地从excel工作表中读取并从中提取数据。
我想知道一次又一次初始化此任务的最佳实践是什么,这样我就不会在数组和其他变量错误上获得越界索引?
这是我用来刷新gui(以及一遍又一遍地从文件中读取)的线程代码。如您所见,它正在从另一个类中调用某些方法。调用此方法时-局部变量和索引数组已经保存了先前迭代中的一些数据:
public void check() {
Thread check = new Thread() {
public void run() {
for (;;) {
EventQueue.invokeLater(new Runnable() {
public void run() {
// Update GUI here on EventQueue.
try {
Task.readTasks();
} catch (InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
label.setText("Next Task Is: " + Task.printNextTask);
}
});
try {
Thread.sleep(5000);
} catch (InterruptedException ie) {
break;
}
if (killcheck)
break;
}
}
};
check.start();
}
public void stopChecking() {
killcheck = true;
}
}
最佳答案
您的问题很笼统,所以我的答案恐怕也很笼统。为避免ArrayIndexOutOfBoundsExceptions,请在数组和for-each对象上尽可能使用简洁的Iterable语法。
也许您还会发现对工作队列问题的this answer有用。
关于java - 一遍又一遍地初始化重复任务的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9779570/