User Tools

Site Tools


java:functional_interfaces

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:functional_interfaces [2026/05/21 08:04] – [Χρήση του Functional Interface java.util.Comparator] gthanosjava:functional_interfaces [2026/05/21 08:15] (current) – [Παράδειγμα χρήσης του Functional Interface java.util.Comparator] gthanos
Line 5: Line 5:
 ===== Τι είναι τα Functional Interfaces ; ===== ===== Τι είναι τα Functional Interfaces ; =====
  
-Ένα Functional Interface είναι ένα interface το οποίο περιέχει ακριβώς μία abstract (αφηρημένη) μέθοδο. Μπορεί να έχει επιπλέον //default// ή //static// μεθόδους τις οποίες όμως δεν υπολογίζμε διότι έχουν ήδη κάποια υλοποίηση. +Ένα Functional Interface είναι ένα interface το οποίο περιέχει ακριβώς μία abstract (αφηρημένη) μέθοδο. Μπορεί να έχει επιπλέον //default// ή //static// μεθόδους τις οποίες όμως δεν υπολογίζουμεδιότι έχουν ήδη κάποια υλοποίηση. 
  
 Συνήθως, φέρει την προαιρετική σήμανση (annotation) @FunctionalInterface πριν από τη δήλωση του Functional Interface. Αυτή η σήμανση ενημερώνει τον compiler να βγάλει σφάλμα αν κατά λάθος προσθέσουμε και δεύτερη αφηρημένη μέθοδο. Συνήθως, φέρει την προαιρετική σήμανση (annotation) @FunctionalInterface πριν από τη δήλωση του Functional Interface. Αυτή η σήμανση ενημερώνει τον compiler να βγάλει σφάλμα αν κατά λάθος προσθέσουμε και δεύτερη αφηρημένη μέθοδο.
Line 69: Line 69:
 </code> </code>
  
-H έκφραση ''(a,b) -> a.getLastName().compareTo(b.getLastName())'' είναι ένα //lamda expression//. Μπορείτε να το δείτε ως μία ανώνυμη συνάρτηση, που αποτελεί την υλοποίηση της μοναδικής //abstract// μεθόδου του αντίστοιχου Functional Interface. Ο λόγος που επιλέγεται η νέα σύνταξη είναι η αποφυγή κατασκευής επιπλέον κλάσεων, ενώ ο κώδικας γίνεται πιο περιγραφικός, διότι η λογική της σύγκρισης τοποθετείται στην αντίστοιχη συνάρτηση.+H έκφραση ''(a,b) -> a.getLastName().compareTo(b.getLastName())'' είναι ένα //lamda expression//. Μπορείτε να σκέφτεσε το //lamda expression// ως μία ανώνυμη συνάρτηση, που αποτελεί την υλοποίηση της μοναδικής //abstract// μεθόδου του αντίστοιχου Functional Interface. Ο λόγος που επιλέγεται η νέα σύνταξη είναι η αποφυγή κατασκευής επιπλέον κλάσεων, ενώ ο κώδικας γίνεται πιο περιγραφικός, διότι η λογική της σύγκρισης τοποθετείται στο σημείο χρήσης της μεθόδου.
  
 Περισσότερα για τα //lamda expressions// θα δούμε στη συνέχεια. Περισσότερα για τα //lamda expressions// θα δούμε στη συνέχεια.
java/functional_interfaces.1779350682.txt.gz · Last modified: 2026/05/21 08:04 by gthanos