我有公共void run()方法。在运行方法内部,我将调用以下三个方法(CurrentDate,generateReport和update)。我的疑问是,对于run方法,我没有任何参数可以传递Details对象。如何从junit测试方法传递Details对象以运行方法。我用谷歌搜索了很多,但没有解决方案。
@Override
public void run() {
while(true) {
Details Obj = ruleQueue.peek();
if(Obj != null && CurrentDate(Obj)) {
ruleQueue.poll();
Generator generator = new Generator();
generator.generateReport(Obj.getId(),Obj.getLastExec(), ruleObj.getnextExec());
updateDate(Obj);
try {
dao.update(Obj);
}
catch (DocumentClientException e) {
logger.error(e);
}
}
}
}
您不能将任何参数传递给重写的run方法。如果通过,它不再被覆盖,它已超载。
因此最好使用Thread构造函数共享对象:
class MyThread implements Runnable{
private Details details;
public MyThread(Details details){
this.details = details;
}
@Override
public void run(){
// Use details here
}
}
为了测试或调用此线程:
Details details = new Details();
MyThread t = new Mythread(details);
t.start();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句