我有一个java类
SomeClass implements Runnable
其中有一个方法 display()。
当我创建这个类的线程时
Thread thread1 = new Thread(new SomeClass());
现在如何使用线程实例调用 display() 方法?
我有一个java类
SomeClass implements Runnable
其中有一个方法 display()。
当我创建这个类的线程时
Thread thread1 = new Thread(new SomeClass());
现在如何使用线程实例调用 display() 方法?
你最终会打电话start()
给thread1
.
SomeClass
将覆盖run()
方法,而该方法又需要调用display()
方法。
这样,当您调用时,将调用对象start()
的 run 方法并执行 display() 方法。SomeClass()
例子:
public class SomeClass implements Runnable {
private List yourArrayList;
public void run() {
display();
}
public void display() {
//Your display method implementation.
}
public List methodToGetArrayList()
{
return yourArrayList;
}
}
更新:
SomeClass sc = new SomeClass()
Thread thread1 = new Thread(sc);
thread1.join();
sc.methodToGetArrayList();
注意:示例是为了说明概念,可能存在语法错误。
如果您不使用 join(),正如 Andrew 所评论的那样,结果可能会不一致。
如果你想从你的新线程调用 display 那么它需要在你的 run 方法中。
如果你想从调用线程调用它然后创建一个新对象,将它传递给你的新线程,然后从你的下降线程调用 display
SomeClass sc = new SomeClass();
new Thread(sc).start();
sc.display()
简单委托:
public class SomeClass implements Runnable {
@Override
public void run() {
display();
}
public void display() {
//...
}
}