首先,我有3个类。 Main类名为' main&#39 ;,一个名为StartRunnable的runnable,另一个名为Elimination Runnable的runnable。
EliminationRunnable在恒定循环上运行,只要当前游戏通过变量激活
StartRunnable在for循环上运行,有许多thread.sleeps来执行不同的东西,for循环有一个名为" intCounterLoop"的计数器。它被宣布为公开。
Main Class同时为每个runnable创建一个新实例。
new Thread(new StartRunnable()).start();
new Thread(new EliminationRunnable(args[1])).start();
现在,问题
如何从StartRunnable类访问intCounterLoop变量;在不使用静态的EliminationRunnable类?我不能使用静态,因为这些类的多个实例可能正在进行。
答案 0 :(得分:0)
将您的StartRunnable实例存储在变量中,而不是在该参数列表中构建它。
然后将实例作为参数传递给EliminationRunnable构造函数。这就是变量的用途。
StartRunnable s = new StartRunnable();
new Thread(s).start();
new Thread(new EliminationRunnable(args[1], s)).start();
然后,您可以根据需要访问所需的任何公共内容。
PS您可以将该字段公开并直接访问它,但我会将其设为私有状态,而是选择公共getter和setter。如果你想深入挖掘,你可以在互联网上轻松找到相关论据。在任何情况下,您希望如何公开对它的访问都超出了本答案的范围。