Java annotation
![]() |
הערך נמצא בשלבי עבודה: כדי למנוע התנגשויות עריכה ועבודה כפולה, אתם מתבקשים שלא לערוך את הערך בטרם תוסר ההודעה הזו, אלא אם כן תיאמתם זאת עם מניח התבנית.
| |
הערך נמצא בשלבי עבודה: כדי למנוע התנגשויות עריכה ועבודה כפולה, אתם מתבקשים שלא לערוך את הערך בטרם תוסר ההודעה הזו, אלא אם כן תיאמתם זאת עם מניח התבנית. | |
בשפת התכנות Java, אנוטציה (באנגלית: annotation; בתרגום מילולי: "הערת הסבר" או "ביאור") היא סוג של מנגנון תחבירי להוספת metadata לקוד המקור. ניתן להוסיף אנוטציות למחלקות, מתודות, משתנים, פרמטרים ו-packages. שלא כמו תגיות Javadoc, אנוטציות ג'אווה יכולות להיות רפלקטיביות בכך שניתן לשלב אותן בקובצי class הנוצרים על ידי המהדר, והן ניתנות לאחסון על ידי המכונה הוירטואלית של ג'אווה (JVM), כך שניתן יהיה לאחזר אותן בזמן ריצה. תמיכה באנוטציות התווספה החל מגרסה 1.5 של ה-JDK
השימוש באנוטציות נפוץ בתשתיות תוכנה (כדוגמת Spring ,Hibernate ו-EJB) כאמצעי נוח להוספת פונקציונליות למחלקות ומתודות המוגדרות על ידי המשתמש. ללא שימוש באנוטציות, על מנת ליישם פונקציונליות נוספת של תשתית התוכנה, יש להצהיר עליה במקור חיצוני (כדוגמת קובץ XML לקונפיגורציה), או לתכנת זאת באמצעות קריאות API יעודיות. האנוטציות לכשעצמן הן לא מתודות והן לא יעשו שום עבודה. במקום זאת, האובייקט של המחלקה מועבר בזמן ריצה למימוש של תשתית התוכנה, שם האנוטציות נקראות ומביאות לביצוע הפונקציונליות הנוספת.
בג'אווה קיימת קבוצת אנוטציות שהמהדר שומר כחלק מהסינטקס של השפה. כמו כן ישנה קבוצת אנוטציות שמורות המשמשות לסימון של אנוטציות אחרות, על מנת לציין היכן ומתי ניתן להשתמש בהן (ראו פירוט בהמשך). מעבר לאנוטציות אלה, המשתמש חופי להגדיר אנוטציות כרצונו.
אנוטציות מובנות
ג'אווה מגדירה קבוצת אנוטציות שמורות המובנות בתוך השפה:
אנוטציות אשר מיושמות על קוד ג'אווה:
Override@
- בודקת שהמתודה המסומנת על ידי האנוטציה דורסת מתודה אחרת. גורמת לשגיאת קומפילציה אם המתודה לא נמצאת באחת מהמחלקות שיורשים ממנה או באחד מהממשקים שהמחלקה מממשת.Deprecated@
- מציינת שהמתודה מיושנת. גורמת לאזהרת קומפילציה במידה ומשתמשים במתודה.SuppressWarnings@
- מורה למהדר להשתיק את אזהרות זמן ההידור אשר מצויינות בפרמטרים של האנוטציה.
אנוטציות אשר מיושמות על אנוטציות אחרות:
Retention@
- מציינת כיצד האנוטציה המסומנת תישמר: רק בקוד המקור, תעבור הידור לתוך המחלקה, או תהיה זמינה בזמן ריצה באמצעות reflection.Documented@
- מסמנת אנוטציה אחרת לצורך הכלה בתיעוד.Target@
- מציינת על אילו אלמנטים של ג'אווה ניתן ליישם האנוטציה המסומנת.Inherited@
- מציינת שהאנוטציה האחרת תעבור בירושה למחלקות שיורשות מהמחלקה המסומנת על ידי האנוטציה (כברירת מחדל, אנוטציות אינן עוברות בירושה למחלקות היורשות).
קישורים חיצוניים
- Annotations - הסבר על אנוטציות במדריך הרשמי לשפת ג'אווה באתר של Oracle (באנגלית)
Java (פלטפורמת תוכנה) | ||
---|---|---|
פלטפורמה | Java (שפת תכנות) • Java Card • Java ME • Java EE • Java SE • Java Virtual Machine | ![]() |
טכנולוגיות | Java applet • Java Web Start • Java Servlet • JavaServer Pages • JavaFX • JavaServer Faces | |
מושגים | איסוף זבל • Cross-platform • Java Bytecode • Java Development Kit • Javadoc • Java Classloader • Java Class Library JIT Compiler • HotSpot • JavaBeans • Enterprise JavaBeans • JNI • JAR • POJO • Web container • Java annotation | |
ממשקי תכנות יישומים | Swing • AWT • SWT • Java 3D • Java 2D • JMS • JDBC • JAXP • JPA • RMI • JNDI | |
שפות ל-JVM | Scala • Clojure • Groovy • JRuby • Jython | |
תשתיות תוכנה וכלים של חברות צד שלישי |
אפאצ'י טומקט • Apache Maven • Apache Ant • Apache Struts JUnit • Hibernate • Spring Framework • JBoss • Google Web Toolkit • BEA WebLogic • IBM WebSphere | |
סביבות פיתוח משולבות | Eclipse • NetBeans • IntelliJ | |
חברות | סאן מיקרוסיסטמס • אורקל | |
אישים | ג'יימס גוסלינג • ביל ג'וי • אריק שמידט |