השתקפות פרמטר שיטה ב- Java

1. סקירה כללית

שיטת פרמטר שיטת השתקפות נוספה ב- Java 8. במילים פשוטות, היא מספקת תמיכה בקבלת שמות הפרמטרים בזמן הריצה.

במדריך מהיר זה, נבחן כיצד לגשת לשמות פרמטרים עבור בונים ושיטות בזמן הריצה - באמצעות השתקפות.

2. טיעון מהדר

על מנת שנוכל לקבל גישה למידע על שם השיטה, עלינו להצטרף באופן מפורש.

לשם כך אנו ציין את פרמטרים אפשרות במהלך ההידור.

עבור פרויקט Maven, אנו יכולים להכריז על אפשרות זו ב pom.xml:

 org.apache.maven.plugins maven-compiler-plugin 3.1 1.8 1.8 -פרמטרים 

3. כיתת דוגמא

נשתמש בתכנית מתוכננת אדם מחלקה עם מאפיין יחיד שנקרא שם מלא להדגים:

אדם בכיתה ציבורית {פרטי מחרוזת fullName; אדם ציבורי (שם מחרוזת מלא) {this.fullName = fullName; } ריק ריק setFullName (מחרוזת fullName) {this.fullName = fullName; } // שיטות אחרות}

4. שימוש

ה פָּרָמֶטֶר מחלקה חדשה ב- Java 8 ויש בה מגוון שיטות מעניינות. אם ה -פרמטרים אפשרות המהדר סופקה, isNamePresent () השיטה תחזיר אמת.

כדי לגשת לשם של פרמטר, אנחנו יכולים פשוט להתקשר getName ():

@ מבחן ציבורי בטל כאשר GetConstructorParams_thenOk () זורק NoSuchMethodException, SecurityException {רשימת פרמטרים = Arrays.asList (Person.class.getConstructor (String.class) .getParameters ()); פרמטר אופציונלי = parameters.stream (). Filter (Parameter :: isNamePresent) .findFirst (); assertThat (parameter.get (). getName ()). isEqualTo ("fullName"); } @Test ציבורי בטל כאשר GetMethodParams_thenOk () זורק NoSuchMethodException, SecurityException {רשימת פרמטרים = Arrays.asList (Person.class.getMethod ("setFullName", String.class) .getParameters ()); פרמטר אופציונלי = parameters.stream () .filter (Parameter :: isNamePresent) .findFirst (); assertThat (parameter.get (). getName ()). isEqualTo ("fullName"); }

5. מסקנה

במאמר מהיר זה, בחנו את תמיכת ההשתקפות החדשה עבור שמות פרמטרים שהפכו זמינים ב- Java 8.

מקרה השימוש הברור ביותר למידע זה הוא עזרה ביישום תמיכה להשלמה אוטומטית של העורכים.

כמו תמיד, ניתן למצוא את קוד המקור ב- Github.


$config[zx-auto] not found$config[zx-overlay] not found