मैं बहुत जावा के लिए नया हूँ, लेकिन मैं (यह हाथ से टाइप किया प्रोटोटाइप सिर्फ मैं क्या जरूरत है वर्णन करने के लिए)जावा में कॉलबैक के साथ फ़ंक्शन कैसे कॉल करें जैसे मैं इसे सी # में करता हूं?
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);
}
}
लिटिल स्पष्टीकरण इस सी # कोड की तरह कुछ लिखने के लिए की जरूरत है। मैं एंड्रॉइड में AsyncTask
का उपयोग कर रहा हूं और क्लास के बाहर प्रोसेसर को कॉल कर रहा हूं लेकिन उन्हें वापस सिग्नल करना चाहूंगा ताकि मैं publishProgress
कर सकूं।
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());
मैं गुमनाम वर्गों का उपयोग करने क्योंकि मैं उन्हें काफी बरसाती कोट वाक्य रचना जब तक वर्बोज़ पाते हैं कि आप सुझाव देने के लिए नहीं जा रहा हूँ: मैं अपने AsyncTask
वाई जावा 8 के लिए टी :) – Torious
[जावा में कॉलबैक फ़ंक्शन] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/443708/callback-functions-in-java) – assylias