假设您有一个具有构造函数的类 MyClass
public Myclass(SomeObject o)
Myclass
,另外还有一个方法public void doSomethingCleverWith(String s)
我希望 MyClass
作为 Thread
执行,所以我
Thread t = new Thread(new MyClass(SomeObject));
执行此线程时,无论如何run
,都需要调用doSomethingCleverWith(String)
。然而,运行(据我所知)不接受任何参数。
您建议我如何处理这个问题? String 应该成为 MyClass 构造函数的一部分吗?我可以做点别的吗?
最佳答案
您不在线程上执行对象 - 您在线程上执行代码... run()
指定的代码您传递给 Thread
的可运行对象的方法构造函数,假设您这样做。
目前还不清楚您要做什么,但听起来您可能需要将额外信息(字符串)传递给 MyClass
的构造函数...或者以不同的方式执行它,例如:
final MyClass tmp = new MyClass(SomeObject));
Thread t = new Thread(new Runnable() {
@Override public void run() {
tmp.doSomethingCleverWithString(someValueHere);
}
});
如果您明确自己想要实现的目标,我们也许能够为您提供更多帮助。
关于java - 关于线程和对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792840/