我想开始在我的iPhone应用程序中使用块,因为它们真的非常方便.
然而,由于所有应用程序也必须移植到Android Java,我不确定这是否是一个好主意,因为我不知道如何轻松地翻译块.
到目前为止,将iOS移植到Android是直接的,几乎是逐行的 – 但iOS块如何转换为Java? (当然我不是在谈论Java块)
非常感谢!
解决方法:
Java允许匿名(未命名)类.更重要的是,他们可以扩展另一个类.以这种方式使用时,它们与Objective C中的块类似.
您经常会看到定义了一个实现Runnable或类似的匿名类.这是在执行类似于块的操作:提供匿名的内联代码定义,该代码可以在某处传递以供以后使用.
有关详细信息,请参阅此处的示例:
http://en.wikipedia.org/wiki/Closure_%28computer_science%29#Local_classes_.28Java.29
所以在Java中你可以编写如下内容:
doMyThing(new Runnable() {
void run() {
// your 'block' code here
}
});
方法doMyThing稍后可以调用run方法(或者通过将Runnable传递给新的Thread对象等将其生成为线程)
这里有进一步的讨论:
Limitations of Java Anonymous Classes compared to Objective-C Blocks
http://www.jondev.net/articles/Objective-C_blocks_vs_Java_Anonymous_Classes_or_Functions_(callbacks)
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!