API ל- Reflection Java: כל מה שאתה צריך לדעת



מאמר זה יציג בפניך את ה- Java Reflection API וגם יעזור כיצד Reflection עובד ב- Java ומה זה בדיוק עם הדגמה

הִשׁתַקְפוּת הוא תהליך של בחינה או שינוי התנהגות זמן הריצה של כיתה בזמן הריצה . ממשק ה- API של השתקפות Java משמש לתמרון בכיתה וחבריה הכוללים שדות, שיטות, קונסטרוקטור וכו 'בזמן הריצה. במאמר זה נבין בפירוט את ה- 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.

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות במאמר זה ונחזור אליך בהקדם האפשרי.