इंटरफ़ेस SetObserver के लिए यह कोड स्निपेट प्रभावी जावा से लिया जाता है (बचें अत्यधिक तुल्यकालन मद 67)जावा में कॉल बैक इंटरफ़ेस क्या है?
public interface SetObserver<E> {
// Invoked when an element is added to the observable set
void added(ObservableSet<E> set, E element);
}
और SetObserver
addObserver()
और removeObserver
विधि से पारित हो जाता है के रूप में नीचे दिए गए:
// Broken - invokes alien method from synchronized block!
public class ObservableSet<E> extends ForwardingSet<E> {
public ObservableSet(Set<E> set) {
super(set);
}
private final List<SetObserver<E>> observers =
new ArrayList<SetObserver<E>>();
public void addObserver(SetObserver<E> observer) {
synchronized (observers) {
observers.add(observer);
}
}
public boolean removeObserver(SetObserver<E> observer) {
synchronized (observers) {
return observers.remove(observer);
}
}
private void notifyElementAdded(E element) {
synchronized (observers) {
for (SetObserver<E> observer : observers)
observer.added(this, element);
}
}
ब्लोच SetObserver<E>
इंटरफ़ेस को कॉल बैक इंटरफेस के रूप में संदर्भित करता है। जावा में कॉल बैक इंटरफ़ेस नामक एक इंटरफ़ेस कब होता है?
के संभावित डुप्लिकेट [कॉलबैक फ़ंक्शन है क्या?] (Http://stackoverflow.com/questions/824234/what-is-a-callback-function) – assylias
'ObservableSet' एक नहीं है इंटरफ़ेस, मुझे लगता है कि आपका मतलब है 'SetObserver ' –
@AlonsoDominguez हाँ यह एक टाइपो था। अभी सवाल संपादित कर रहा है। – Geek