Cómo envolver un objeto en una lambda en Android API <24

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 WrapHelpermí 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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=190265&siteId=1
Recomendado
Clasificación