Addev:
Quiero repetir una colección que actúa sobre cada elemento.
Collection<Listener> listeners = ....
interface Listener {
void onEventReceived();
void onShutDown();
}
El código podría ser:
void notifyShutdown() {
for(Listener listener:listeners){
listener.onShutDown();
}
}
Quiero aprovechar las lambdas java8 así que declararon una interfaz de ayuda;
interface WrapHelper<T> {
void performAction(T item);
}
y un método de notificar
public void notifyListeners(WrapHelper<Listener> listenerAction) {
for (Listener listener : listeners) {
listenerAction.performAction(listener);
}
}
Así que se puede declarar métodos como:
public void notifyEventReceived() {
notifyListeners(listener -> listener.onEventReceived());
}
public void notifyShutDown() {
notifyListeners(listener -> listener.onShutDown());
}
Mi pregunta es: ¿Es necesario declarar la interfaz de WrapHelper
mí mismo de que hay una clase ya existente para este propósito en la API de Android <24.
Gracias
maheryhaja:
Si tiene que declarar su WrapHelper interfaz desde la API <24 no soporta el consumidor de java.util
Altough, puede utilizar la biblioteca Lighweight-Stream API- wich ofrece clases e interfaces listas para su uso como Proveedor, Consumo y opcional. Funciona casi igual que Java8 nuevas características y funciona bien en la API <24.