חלק ראשון. כתבתי בקצרה מאוד על הערות עם סוגי SOURCE ו-CLASS. כדאי לקרוא כדי לא ללכת לאיבוד בחלק השני ולהתחיל "לא להבין" עוד קצת =) בהחלט תהיה כאן לפחות מילה אחת שאתם מכירים!
בפעם הראשונה שראיתי אותם בבעיות כאן, איכשהו לא שמתי לב אליהם. ובכן, Override מבלה, זה נכתב על ידי IDEA, אז ככה זה צריך להיות. עם הזמן הבנתי שהכל הרבה יותר עמוק. בזמן שאתה לומד, הערות נראות כמו משהו חסר תועלת, אבל הכרחי. אתה לא יודע למה הם עושים את זה. אני חושב שקראתי כמה מאמרים, הם אמרו "כמה נהדר שעכשיו יש לנו הערות, הכל הפך להיות כל כך פשוט." אבל לא ידעתי איך זה היה קודם, ולא הבנתי שעכשיו זה קל יותר. עכשיו אני יודע ואני רוצה לספר לך קצת. ישנם 3 סוגים של הערות (RetentionPolicy):
יליד - מעולם לא נראה ולא היה בשימוש. אני חושב שזו הערה נדירה למדי, כי... הם משתמשים בו אם הם צריכים להריץ קוד בשפה "ילידית" אחרת. ניסיתי למצוא התייחסות ברורה אליה, אבל לא הצלחתי.
SupressWarnings - משמש לעתים קרובות בצורה @SuppressWarnings("לא מסומנת"). משמש כדי לדכא אזהרות שאתה מודע להן. הדוגמה שלמעלה מדכאת אזהרות בנוגע להעברה של סוגים לא מסומנים. שוב, נתקלתי בזה רק בצורה ובשימוש הזה.
Generated - נתקלתי בזה עכשיו כשהמשימה דורשת ממני ליצור מחלקות מקבצי xsd. 3 ההערות הללו הן די ספציפיות וסביר להניח שאינן מעניינות אותך כרגע. אני אתאר את האחרון.
לעקוף - אתה משתמש בו כל הזמן וזה עושה דבר מאוד שימושי. קל לטעות בעת עקיפת שיטה, אלא אם כן IDEA עושה זאת. יש שגיאות הקלדה או סתם טעויות. ביאור זה יבטיח שהמתודה במחלקת האב זהה לשיטה שלנו (המתויגת). זה מבטיח לנו שהשיטה תידרוס ולא תתווסף אליה. בעת עיבוד מחדש של הקוד, ניתן להסיר או לשנות את השיטה. שוב, ההערה תציין בפניך את השגיאה. בלי זה, השיטה שלנו פשוט תושלם.
מְשַׁעֲמֵם? הייתי אומר שכן, אין הרבה שימושי לקחת מהמאמר הזה. כמעט כל דבר בו (90%) הוא סיפור על משהו שלא תשתמש בו, או שתשתמש בו, אבל לעתים רחוקות מאוד. 10% הנותרים הם שלום ותיאור של הערת Override, שבמבט ראשון הוא חסר תועלת. ובכן, אני חושב שהחלק השני של המאמר יהיה מעניין יותר. יהיו הערות RUNTIME, והן מקיימות אינטראקציה עם הקוד בזמן אמת ויוצרות קסם שחור. הערות. חלק שני. לומבוק.
- SOURCE – הערות מהדר
- CLASS – נתונים מהביאור ייכתבו לקוד byte אך לא יהיו זמינים במהלך הפעולה. הם כותבים שהרבה ביאורים בספרייה הסטנדרטית משתמשים בסוג זה, ועכשיו הם שומרים אותו בגלל תאימות לאחור. משמש למשימות מאוד ספציפיות.
- שאלה ותשובה על StackOverflow
- RUNTIME - הפופולרי ביותר, בשימוש בזמן שהקוד פועל.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.class
- javax/annotation/Generated.class
- ,java/lang/Override.class
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- Native - משתנה תחת ביאור זה יכול להתייחס לקוד מקורי;
- SupressWarnings - מדכא אזהרות מהדר שונות;
- נוצר - מסמן את קוד המקור שנוצר;
- דריסה - בודקת עקיפה של שיטה.
GO TO FULL VERSION