关闭Java或类似的东西

时间:2012-03-01 15:40:55

标签: java android reflection closures anonymous-class

自从我正在为Android开发以来,我一直在努力寻找一种方法在Java 1.6中加入类似于Closure的东西。

我想要什么(在一个完美的世界中)我有一个课程,我们称之为“项目”。

然后我有一个这样的数组列表。

ArrayList<Item> items = new ArrayList<item>;

在每个items.get(x)中我想保存一个在调用时执行的代码块。这段代码需要在容纳ArrayList项的类的范围内进行。

我唯一的半脑子想法是在类中创建包含“items”的方法,并在每个“item”实例中保存函数的名称,然后使用reflection来调用这些方法......

我很怀疑这是可能的,但这是我会找到答案的地方。

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:9)

您需要的是像

这样的界面
interface Closure{
    public void exec();
}

为您想要的每个“闭包”代码创建一个匿名类

Closure closure = new Closure() {
    public void exec(){
        // code here
    }
}