בהמשך לטיפים על הגרסה הבאה של Java, להלן טיפ על הFeature האחרון שמתווסף לשפה בJava 8.
הFeature נקרא Lambda Expressions, והוא מוכר לנו מC# (ראו גם טיפ מספר 45).
ראינו בטיפ מספר 370 הסבר על Single abstract methods (SAM).
אחת השיטות (וכנראה השיטה העיקרית) לאתחל Single abstract method היא באמצעות Lambda Expressions:
נניח שיש לנו את הממשק הבא:
|
|
נניח שאנחנו רוצים ליצור מימוש שלו.
עד Java 8 היינו צריכים לכתוב משהו כזה:
|
|
נוכל ליצור מימוש שלו בצורה הבאה:
|
|
הסינטקס דומה לזה של C#, רק שכאמור אין delegate אלא SAMים.
הדבר הזה גם מאפשר להעביר את הLambdaות האלה להרבה מהפונקציות של הFramework של Java שמצפות לקבל ממשקים כאלה, למשל, נוכל לעשות משהו כזה:
|
|
או אפילו ישר ככה:
|
|
בסה"כ מדובר בדבר נחמד, נראה שיש יתרון בבחירה להשתמש בSAM בהתחשב בעובדה שהרבה מהפונקציות של הFramework יודעות לעבוד עם הממשקים כנ"ל.
סופ"ש אנונימי טוב.