Sobes.tech
Middle

Mit tud a Java 8 és újabb verziók funkcionális felületeiről?

sobes.tech MI

Válasz az MI-től

A funkcionális interfész olyan interfész, amely csak egy absztrakt metódust tartalmaz. Ezek lambda kifejezések és metódusreferenciák megvalósítására szolgálnak. Lehetnek alapértelmezett és statikus metódusai.

A java.util.function csomagban található beépített funkcionális interfészek példái:

  • Predicate<T>: Fogad egy T típusú argumentumot, és boolean értéket ad vissza.
    // public boolean test(T t);
    
  • Consumer<T>: Fogad egy T típusú argumentumot, és nem ad vissza semmit. Műveletet hajt végre az argumentumon.
    // public void accept(T t);
    
  • Supplier<T>: Nem fogad argumentumot, és T típusú értéket ad vissza.
    // public T get();
    
  • Function<T, R>: Fogad egy T típusú argumentumot, és R típusú értéket ad vissza.
    // public R apply(T t);
    

Az @FunctionalInterface annotáció opcionális, de ajánlott a fordító általi ellenőrzés és világosság érdekében.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Alapértelmezett metódus
    }
}