פרמטרים ברירת מחדל של Java באמצעות העמסת יתר של השיטה

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

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

הנה, אנו אומרים לדמות מכיוון שבניגוד לשפות OOP מסוימות אחרות (כמו C ++ ו- Scala), מפרט Java אינו תומך בהקצאת ערך ברירת מחדל לפרמטר שיטה.

2. דוגמא

כדוגמה, בואו נכין תה! ראשית, נצטרך תה POJO:

כיתה ציבורית תה {גמר סטטי int DEFAULT_TEA_POWDER = 1; שם מחרוזת פרטי; חלב אינטימי פרטי; עשבי תיבול בוליאניים פרטיים; סוכר אינטי פרטי; אבקה פרטית אבקה; // גטרים סטנדרטיים} 

הנה ה שֵׁם הוא תחום חובה, כמו שלנו תה צריך שם לפחות.

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

הפרמטרים האופציונליים האחרים הם חלב (במ"ל), עשבי תיבול (להוסיף או לא להוסיף), ו- סוכר (בכף). אם אחד מהערכים שלהם אינו מסופק, אנו מניחים שהמשתמש אינו רוצה אותם.

בואו נראה כיצד להשיג זאת בג'אווה באמצעות העמסת יתר של השיטה:

תה ציבורי (שם מחרוזת, חלב int, עשבי תיבול בוליאניים, int סוכר, int teaPowder) {this.name = שם; זה חלב = חלב; this.herbs = עשבי תיבול; זה.סוכר = סוכר; this.teaPowder = תה אבקה; } תה ציבורי (שם מחרוזת, חלב int, עשבי תיבול בוליאניים, int sugar) {this (שם, חלב, עשבי תיבול, סוכר, DEFAULT_TEA_POWDER); } תה ציבורי (שם מחרוזת, חלב אינט, עשבי תיבול בוליאניים) {זה (שם, חלב, עשבי תיבול, 0); } תה ציבורי (שם מחרוזת, חלב int) {זה (שם, חלב, שקר); } תה ציבורי (שם מחרוזת) {זה (שם, 0); }

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

עכשיו בואו נוסיף מבחן פשוט כדי לראות זאת בפעולה:

@ מבחן ציבורי בטל whenTeaWithOnlyName_thenCreateDefaultTea () {Tea blackTea = תה חדש ("תה שחור"); assertThat (blackTea.getName ()). isEqualTo ("תה שחור"); assertThat (blackTea.getMilk ()). isEqualTo (0); assertThat (blackTea.isHerbs ()). isFalse (); assertThat (blackTea.getSugar ()). isEqualTo (0); assertThat (blackTea.getTeaPowder ()). isEqualTo (Tea.DEFAULT_TEA_POWDER); }

3. חלופות

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

  • באמצעות תבנית Builder
  • באמצעות אופציונלי
  • מתן אפשרות לאפס כטיעוני שיטה

כך נוכל להשתמש בדרך השלישית להתרת טיעונים בטלים בדוגמה שלנו:

תה ציבורי (שם מחרוזת, חלב שלם, עשבי תיבול בוליאניים, סוכר שלם, תה שלם אבקת) {this.name = שם; this.milk = חלב == null? 0: milk.intValue (); this.herbs = עשבי תיבול == null? שקר: herb.booleanValue (); this.sugar = סוכר == null? 0: sugar.intValue (); this.teaPowder = teaPowder == null? DEFAULT_TEA_POWDER: teaPowder.intValue (); }

4. מסקנה

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

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


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