Interface-Supplier

Interface Supplier jest jednym z interfejsów z którego korzystają strumienie. Metoda z tego interfejsu jest wykorzystywana w celu uniknięcia wygenerowania wyjątku przy zastosowaniu większej liczby niż 1 operacji typu terminal. Interfejs ten został wprowadzony w Java 8 (pakiet java.util.function). jest interfejs funkcyjny ( a więc możne wykorzystywać lambdy). Jedyna metodą jest metoda bez prametrowa/bez argumentowa: get() która ma za zadanie „wyprodukowanie” wartości typu T . Interfejs Supplier wspiera programowanie funkcyjne.

W jednym z wcześniejszych wpisów Strumienie – STREAM była mowa o operacjach typu Terminal które zamykają strumienie oraz że może być tylko jedna operacja typu terminal. Jednak w przykładzie poniżej dzięki zastosowaniu metody get() można zwiększyć liczbę operacji typu Terminal. Proszę spójrz poniżej:

Supplier<Stream<String>> namesSupplier = () -> Stream.of("John", "Marry", "George", "Paul", "Alice", "Ann"); 
 Predicate<String>  hasName = name -> name.equals("Alice");
 
 namesSupplier.get().anyMatch(hasName);  // ok
 namesSupplier.get().noneMatch(hasName); // ok 

Każdorazowe wywołanie metody get() dostarcza/produkuje nam „nowy” strumień i dzięki temu możemy wykonać kolejną operację typu terminal bez obaw iż zostanie rzucony wyjątek: IllegalStateException.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *