通过传递内部类来对象发布

时间:2015-12-25 07:13:10

标签: java anonymous-class

问题不在于并发性。

我正在阅读B. Goetz's Java Concurrency in practice,现在我正在section 3.2关于对象发布。他说

  

对象或其内部状态的最终机制   发布是发布 内部类实例 ,如图所示   清单3.7中的ThisEscape。

public class ThisEscape {
    public ThisEscape(EventSource source) {
         source.registerListener(
              new EventListener() {
                  public void onEvent(Event e) {
                      doSomething(e);
                  }
              });
          }
     }
}

所以,我试图写出我自己的这种出版物的有害例子。这是:

public class InnerPublication {

    public static void main(final String[] args){
        Subscriber s = new Subscriber();
        s.subscribe(new ToPublish(){ });
    }

    public abstract static class ToPublish{ }

    public static class Subscriber{
        public void subscribe(ToPublish tp){
            //How can I use the published enclosing instance to do some harm?
        }
    }
}

因为anonymous class is always (even in a static context) an inner class,我们在这里有一个出版物。但我不知道如何使用该出版物对封闭的实例造成一些伤害。

0 个答案:

没有答案