אופרטור החץ (->) ב-Java מוסבר במאמר זה יחד עם קוד לדוגמה שיעזור לך להבין את הרעיון.
אופרטור החץ, המשמש ליצירת ביטויי למבדה, הוצג יחד עם תוספת הפונקציונליות של ביטוי lambda ב-Java 8. הוא מחלק את גוף הביטוי מהארגומנטים.
(parameters) -> { statements; } // Lambda expression having arrow
כדי להפוך את קוד Java למובן ותמציתי יותר, ניתן להשתמש בביטוי lambda, אשר הוצג על ידי Java 8, עבור שיעורים אנונימיים.
המחשה של איך לבנות מחלקה אנונימית באמצעות Java לפני Java 8 מוצגת להלן.
math.pow java
Runnable r1 = new Runnable() { @Override public void run() { System.out.print(' method Run '); } };
והנה כיצד נוכל לבצע את המשימה שהוזכרה לעיל ב-Java 8 תוך שימוש בביטוי למבדה.
מדריך javascript
Runnable r1 = ()-> System.out.print(' method Run ');
כדי להבין טוב יותר כיצד להשתמש באופרטורים למבדה וחצים, נתחיל עם כמה דוגמאות.
כיצד להשתמש ב-Arrow Operator ב-Java?
באיור זה, שיטת draw() של ממשק Drawable יושמה באמצעות ביטוי lambda ואופרטור החץ. ראה את האיור למטה.
M.java
interface Drawable{ public void draw(); } public class M { public static void main(String[] args) { int w = 20; // arrow operator Drawable d=()->{ System.out.println(' Drawing width is '+w); }; d.draw(); } }
תְפוּקָה:
מייבן להתקין
אנו יכולים להשתמש בביטוי למבדה בתכנות ג'אווה במגוון דרכים מכיוון שזו טכניקה מצוינת לכתוב קוד תמציתי באמצעות גישה פונקציונלית. להלן מספר מקרים שבהם נוכל להשתמש בו.
מפעיל מערך באוסף Java
באיור זה, אנו משתמשים בביטוי למבדה כדי לסנן נתונים מ-ArrayList. כדי להשיג את התוצאה הרצויה, השתמשנו בשיטת filter() וב-stream API. אתה יכול לראות כמה פשוט יותר לכתוב קוד למבדה מאשר קוד לא למבדה. ראה את האיור למטה.
M1.java
package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; class P{ int id; String n; float pri; public P(int id, String n, float pri) { this.id = id; this.n = n; this.pri = pri; } } public class M1{ public static void main(String[] args) { List<p> l = new ArrayList</p><p>(); l.add(new P(1,' JavaTpoint ',17000)); l.add(new P(3,' Tutorial and example ',100500)); l.add(new P(2,' Website ',25000)); // using the arrow to filter data Stream</p><p> filtered_data = l.stream().filter(q -> q.pri > 17000); filtered_data.forEach( p -> System.out.println(p.n+': '+p.pri) ); } } </p>
תְפוּקָה:
לישון ב-javascript
Tutorial and example: 100500.0 Website: 25000.0
אופרטור מערך בשרשור Java
על מנת ליישם את שיטת run() של שני הממשק הניתן להרצה, השתמשנו בביטוי lambda במקרה זה. ניתן להשתמש בביטוי למבדה בקלות מכיוון של Runnable יש ממשק שיטה יחיד. ראה את האיור למטה.
M3.java
package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class M3{ public static void main(String[] args) { // using arrow operator Runnable r1=()->{ System.out.println(' Thread is running... '); }; Thread t1 = new Thread(r1); t1.start(); } }
תְפוּקָה:
Thread is running...