如何在内部类中返回外部类对象

文章作者 100test 发表时间 2007:03:14 16:34:36
来源 100Test.Com百考试题网


本文讨论的不是内部类的概念,而是具体使用的一个场景-如何在内部类中返回外部对象

看一段代码

import java.util.LinkedList.
import java.util.List.


public class OuterClass
{

private List listeners = new LinkedList().

public void addListeners(IListener listener)
{
this.listeners.add(listener).
}


private OuterClass outer = this. (1)
private class InnterClass
{
public void publish()
{
//将事件发布出去 (2)
for(int i=0.i < listeners.size().i )
{
IListener listener = (IListener) listeners.get(i).
listener.receiveEvent(outer).
}
}
}


public void execute()
{
InnterClass in = new InnterClass(). (3)
in.publish().
}
}

public interface IListener
{

public void receiveEvent(OuterClass obj).
}

你可能觉得这个例子很别扭,在哪里让你觉得难受呢?其实问题的关键就在于接口IListener的定义,这里需要给receiveEvent方法传递的参数是外部对象!(别激动,下面我会说明需要传递的一个场景)

相关文章


专访Java之父Gosling:Java未来有许多事要做
设计模式:JDKObserver设计模式之研究
设计模式:Java设计模式之计数代理模式
如何在内部类中返回外部类对象
[JUNIT]通过测试分类实现敏捷构建(2)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛