关于教程的问题

时间:2010-02-23 12:10:01

标签: java multithreading

我正在尝试使用以下教程来运行并理解:

http://www.ibm.com/developerworks/web/library/wa-cometjava/index.html

在可以在页面底部下载的示例代码中,一个类中的所有内容都有两个内部类。

如何让“The Weatherman”(清单4)看到“MessageSender”(清单3)的线程,这样我可以在run方法中使用它而不使用内部类?

谢谢你hansa

问题的重新制定: 如何使ClassThatDoSomething中的内部类MessageSender的send方法可以访问。

示例-代码:

public class Example extends HttpServlet implements CometProcessor {

  private MessageSender messageSender = null;

  @Override
  public void init() throws ServletException 
  {
  // starts thread MessageSender
  }

  public event(CometEvent)
  {
    // Object of ClassThatDoSomething gets created started
  }


  private class ClassThatDoSomething {


    public void start() 
    {  
      Runnable runnable = new Runnable() {

      public void run(){
          messageSender.send(message);
      }
      Thread thread = new Thread(runnable);
      thread.start();
  }
    }

  private class MessageSender implements Runnable {

    public void send(String message) { //... }

    public void run() { //...}
  }
}

1 个答案:

答案 0 :(得分:0)

您可以将代码放入Eclipse中,运行'Refactor:将成员类型转换为toplevel',然后检查结果。