Sobes.tech
Middle

Τι γνωρίζετε για τις λειτουργικές διεπαφές στη Java 8 και νεότερες εκδόσεις;

sobes.tech AI

Απάντηση από AI

Η λειτουργική διεπαφή είναι μια διεπαφή που περιέχει μόνο μία αφηρημένη μέθοδο. Χρησιμοποιούνται για την υλοποίηση εκφράσεων lambda και αναφορών σε μεθόδους. Μπορούν να έχουν προεπιλεγμένες και στατικές μεθόδους.

Παραδείγματα ενσωματωμένων λειτουργικών διεπαφών στη βιβλιοθήκη java.util.function:

  • Predicate<T>: Δέχεται ένα όρισμα τύπου T και επιστρέφει μια boolean τιμή.
    // public boolean test(T t);
    
  • Consumer<T>: Δέχεται ένα όρισμα τύπου T και δεν επιστρέφει τίποτα. Εκτελεί μια ενέργεια πάνω στο όρισμα.
    // public void accept(T t);
    
  • Supplier<T>: Δεν δέχεται ορίσματα και επιστρέφει μια τιμή τύπου T.
    // public T get();
    
  • Function<T, R>: Δέχεται ένα όρισμα τύπου T και επιστρέφει μια τιμή τύπου R.
    // public R apply(T t);
    

Η σημείωση @FunctionalInterface είναι προαιρετική, αλλά συνιστάται για έλεγχο από τον μεταγλωττιστή και για σαφήνεια.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Προεπιλεγμένη μέθοδος
    }
}