Нельзя передавать аргументы переопределенному методу выполнения.Если вы передаете, он больше не перезаписывается, он перегружен.
Поэтому лучше использовать конструктор 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();