Sobes.tech
Middle
150

Šta znate o funkcionalnim interfejsima u Javi 8 i novijim verzijama?

Одговор од АИ

sobes.tech АИ

Funkcionalni interfejs je interfejs koji sadrži samo jedan apstraktni metod. Koristi se za implementaciju lambda izraza i referenci na metode. Mogu imati podrazumevane i statičke metode.

Primeri ugrađenih funkcionalnih interfejsa u paketu java.util.function:

  • Predicate<T>: Prima argument tipa T i vraća boolean vrednost.
    // public boolean test(T t);
    
  • Consumer<T>: Prima argument tipa T i ne vraća ništa. Izvršava akciju nad argumentom.
    // public void accept(T t);
    
  • Supplier<T>: Ne prima argumente i vraća vrednost tipa T.
    // public T get();
    
  • Function<T, R>: Prima argument tipa T i vraća vrednost tipa R.
    // public R apply(T t);
    

Atribut @FunctionalInterface je opcionalan, ali se preporučuje za proveru od strane kompajlera i za jasnoću.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Podrazumevana metoda
    }
}