Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中模拟将函数作为参数传递_Java_Android_Api - Fatal编程技术网

Java 如何在Android中模拟将函数作为参数传递

Java 如何在Android中模拟将函数作为参数传递,java,android,api,Java,Android,Api,我正在将一个API包装器从iOS移植到Android。在iOS包装器中,我们有一个非常大的类,它包含所有可能的API函数。调用函数时,我们将回调方法作为匿名函数传递 我想知道如何在android上做同样的事情。一种方法是让API类实现一个带有processFinish函数的接口,AsyncTask在PostExecute上调用该函数,但是processFinish的实现将有大量的条件,这取决于调用了哪个API函数。在不满足所有这些条件的情况下,我如何做到这一点?一个类似于传入回调的例子,可以用于

我正在将一个API包装器从iOS移植到Android。在iOS包装器中,我们有一个非常大的类,它包含所有可能的API函数。调用函数时,我们将回调方法作为匿名函数传递


我想知道如何在android上做同样的事情。一种方法是让API类实现一个带有processFinish函数的接口,AsyncTask在PostExecute上调用该函数,但是processFinish的实现将有大量的条件,这取决于调用了哪个API函数。在不满足所有这些条件的情况下,我如何做到这一点?

一个类似于传入回调的例子,可以用于Android上的api实现,其中包括“消息循环器”和“处理程序”

处理程序可以内联使用,就像函数作为回调传递一样。处理程序实现可以是非常健壮的对象(可运行),正如您可以从这个异步Http中看到的那样

通常,您可以将api划分为对象层次结构,当您在android中“获取消息”时,传入相应的对象,当处理程序被回调时,它可以调用前面提供给处理程序的对象(您的api类)


快速查看一下“定义a”,如果它看起来可能适合您,那么请关注上一个链接中使用http的高级示例。用api对象层次结构替换所有httpclient行为

我相信我想要的答案是匿名函数

这似乎不是以android为中心的问题,更像是程序员.se之类的设计模式问题,但如果我站在你的立场上,我会用面向对象的方式来做。拥有一个被每种类型的API调用重写的基函数,并完成它自己的事情。@KasraRahjerdi重写基函数到底是什么意思?如何确定哪一个api调用调用了基函数?很快Java8就会有Lambdas用于此功能-希望Droid也能很快得到它们。谢谢您的输入。看起来处理程序和AsyncTasks在某种程度上是互斥的,我希望尽可能少地编写与线程相关的代码,因此如果可以的话,就坚持使用AsyncTasks。