הִשׁתַקְפוּת הוא תהליך של בחינה או שינוי התנהגות זמן הריצה של כיתה בזמן הריצה . ממשק ה- API של השתקפות Java משמש לתמרון בכיתה וחבריה הכוללים שדות, שיטות, קונסטרוקטור וכו 'בזמן הריצה. במאמר זה נבין בפירוט את ה- Java Reflection API.
מאמר זה יתמקד בעצות הבאות:
- היכן השתמשו ב- Java Reflection API?
- שיעור בחבילה java.lang.reflect
- שיטות המשמשות java.lang.Class
- כיצד להשיג את האובייקט של הכיתה בכיתה?
- יתרונות וחסרונות השימוש ב- Java Reflection API
אז בואו נתחיל עם מצביעים אלה במאמר זה ב- Java Reflection API
היכן משתמשים ב- Java Reflection API?
ממשק ה- API של השתקפות משמש בעיקר ב:
- IDE (סביבת פיתוח משולבת) למשל. Eclipse, MyEclipse, NetBeans וכו '.
- מנפה
- כלי בדיקה וכו '.
אז מהי חבילת Class in Java lang reflect?
שיעור בחבילה java.lang.reflect?
להלן רשימה של שיעורי Java שונים ב- java.lang.package ליישום השתקפות-
- שדה : מחלקה זו משמשת לאיסוף מידע הצהרתי כגון סוג נתונים, שינוי גישה, שם וערך של משתנה.
- שיטה : מחלקה זו משמשת לאיסוף מידע הצהרתי כגון שינוי גישה, סוג החזרה, שם, סוגי פרמטרים וסוג חריג של שיטה.
- בּוֹנֶה : מחלקה זו משמשת לאיסוף מידע הצהרתי כגון שינוי גישה, סוגי סוגים ופרמטרים של קונסטרוקטור.
- לַעֲרוֹך : מחלקה זו משמשת לאיסוף מידע על שינוי גישה מסוים.
לא תן לנו להסתכל על שיטות ה- Java Reflection API,
שיטות המשמשות java.lang.Class
שיטה | תיאור |
מחרוזת ציבורית getName () | מחזיר את שם הכיתה |
Class static public forName (String className) זורק ClassNotFoundException לעקוף לעומת עומס יתר c ++ | טוען את הכיתה ומחזיר את ההפניה למחלקה בכיתה. |
אובייקט ציבורי newInstance () זורק InstantiationException, IllegalAccessException | יוצר מופע חדש. |
ציבורי בוליאני isInterface () | בודק אם זה ממשק. |
isooly הציבור הוא Array () הפשטת נתונים ב- c ++ | בודק אם זה מערך. |
בוליאני ציבורי הוא פרימיטיבי () | בודק אם הוא פרימיטיבי. |
מחלקה ציבורית getSuperclass () | מחזיר את התייחסות מחלקה-על. |
שדה ציבורי [] getDeclaredFields () זורק את SecurityException | מחזירה את המספר הכולל של שדות בכיתה זו. |
שיטה ציבורית [] getDeclaredMethods () זורק SecurityException | מחזירה את המספר הכולל של שיטות בכיתה זו. |
בונה ציבורי [] getDeclaredConstructors () זורק את SecurityException | מחזירה את המספר הכולל של הבנאים בכיתה זו. |
שיטה ציבורית getDeclaredMethod (שם מחרוזת, Class [] parameterTypes) זורק NoSuchMethodException, SecurityException | מחזיר את מופע מחלקת השיטה. |
כיצד להשיג את האובייקט של הכיתה בכיתה?
ישנן שלוש דרכים להשיג מופע של מחלקה בכיתה. הם כדלקמן:
- שיטת forName () בכיתה בכיתה
- שיטת getClass () של מחלקת Object
- התחביר של .class
שיטת forName () בכיתה בכיתה
- משמש לטעינת הכיתה באופן דינמי.
- מחזיר את המופע של מחלקה בכיתה.
- יש להשתמש בו אם אתה יודע את השם המלא של הכיתה. לא ניתן להשתמש בו לסוגים פרימיטיביים.
בואו נראה את הדוגמה הפשוטה של שיטת forName ().
class Simple {} Class Test {public static void main (String args []) {Class c = Class.forName ('Simple') System.out.println (c.getName ())}}
תְפוּקָה:
פָּשׁוּט
השתקפות Java: שיטת API getClass () של מחלקת אובייקט
זה מחזיר את המופע של הכיתה בכיתה. יש להשתמש בו אם אתה יודע את הסוג. יתר על כן, ניתן להשתמש בו עם פרימיטיבים.
מחלקה פשוטה {} מבחן מחלקה {void printName (Object object) {Class c = obj.getClass () System.out.println (c.getName ())} main public public static (String argument []) {Simple s = new פשוט () מבחן t = מבחן חדש () t.printName (ים)}}
תְפוּקָה:
פָּשׁוּט
מה זה __init__ בפייתון
התחביר של .class
אם סוג זמין אך אין מקרה, ניתן להשיג מחלקה על ידי הוספת '.class' לשם הסוג. ניתן להשתמש בו גם לסוג נתונים פרימיטיבי.
מבחן מחלקה {ציבורי ריק ריק (מחרוזת טוענת []) {מחלקה c = בוליאנית.קלאס System.out.println (c.getName ()) מחלקה c2 = Test.class System.out.println (c2.getName ()) }}
תְפוּקָה:
בוליאני
מִבְחָן
עכשיו בואו נמשיך עם מאמר זה של Java Reflection API
יתרונות וחסרונות השימוש ב- Java Reflection API
יתרונות השימוש ב- Java Reflection API
- מאפייני הרחבה: יישום עשוי להשתמש בשיעורים חיצוניים ומוגדרים על ידי משתמש על ידי יצירת מקרים של אובייקטים להרחבה תוך שימוש בשמותיהם המלאים.
- כלי איתור באגים ובדיקות : מתנגנים משתמשים במאפיין ההשתקפות כדי לבחון חברים פרטיים בשיעורים.
חסרונות השימוש ב- Java Reflection API
- תקורה לביצועים: לביצוע פעולות רפלקטיביות ביצועים איטיים יותר מעמיתיהם הלא רעיוניים, ויש להימנע מהם בקטעי קוד אשר נקראים לעתים קרובות ביישומים רגישים לביצועים.
- חשיפת פנימיות: קוד רפלקטיבי שובר את ההפשטות ולכן עשוי לשנות התנהגות עם שדרוגים של הפלטפורמה.
לפיכך הגענו לסוף מאמר זה בנושא 'Java Reflection API'. אם ברצונך ללמוד עוד,לבדוק את מאת אדוריקה, חברת למידה מקוונת אמינה. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה נועד להכשיר אותך לקונספטים מרכזיים של Java וגם עם מסגרות Java שונות כמו Hibernate & Spring.
יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות במאמר זה ונחזור אליך בהקדם האפשרי.