Java için oldukça yeni amaJava'da geri çağırmalarla işlev çağırma nasıl C# içinde yapmak gibi?
private void ParentFunc()
{
var worker = new WorkerClass()
worker.DoWork(e => console.Write("Progress" + e));
}
public class WorkerClass()
{
public method DoWork(Action<int> callback)
{
for (int i=1; i<1000; i++) callback.Invoke(i);
}
}
Küçük açıklama (Ne gerekliyse göstermek için bu el daktilo prototip) bu C# kodu gibi şeyler yazmak gerekir. Ben android içinde AsyncTask
kullanıyorum ve dış işlemci sınıflandırılmış çağırıyorlar ama geri bildirim yapmak istiyorum böylece publishProgress
yapabilirsiniz. Ben yağmurluk sözdizimi kadar onları oldukça ayrıntılı bulmak çünkü anonim sınıfları kullanmanızı önermek için gitmiyorum
interface CallBack<P>
{
public void callback(P p);
}
class MyCallBack implements CallBack<String> {
public void callBack(String p) {
System.out.println(p);
}
}
class WorkerClass {
public void doWork(CallBack<String> callback)
{
// do work
callback.callBack("Done!");
}
}
WorkerClass wc = new WorkerClass();
wc.doWork(new MyCallBack());
: Ben bir destek sınıfı yardımıyla benim AsyncTask
Wai java 8 için t :) – Torious
[Java Geri çağırma işlevleri] olası bir kopyası (http://stackoverflow.com/questions/443708/callback-functions-in-java) – assylias