在类中调用方法

时间:2011-03-18 16:15:52

标签: java multithreading methods

问候

我正在使用java开发我的第一个应用程序,我想知道如何执行以下操作

我创建了这个

public class Test
{
     ...

     public void control()
     {
          final ArrayList<Module> mods = new ArrayList<Module>();
          if (i == 0)
          {
               mods.add( null );
               mods.add(moduleList.get( i ));
               Thread t = new Thread( new Runnable()
               {
                    public void run()
                    {
                         StartController(mods);
                    }             
               });     
          }
     }

     public void StartController(ArrayList<Module> modList)
     {
          //Do Stuff
     }
}

但我无法做到这一点!他找不到StartController ....

我想保持代码接近这一点。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

看起来100%正确,但在这种类型的呼叫不起作用的情况下,这是一个常见的解决方案:

Test.this.StartController(mods)

而不是

StartController(mods)

答案 1 :(得分:0)

尝试使用ExecutorService和Runnable接口。你可以在这里看到一个简单的例子:

http://programmingexamples.wikidot.com/executorservice

答案 2 :(得分:0)

另一种选择可能是使StartController(..)方法成为静态。

public static void StartController(ArrayList<Module> mods) {
  // do stuff
}

然后将通话更改为:

Test.StartController(mods);