חלק שני| Reflection

מה נלמד היום?

1. השגת ה- class לאובייקט
2. השגת שם רגיל +מקוצר
3. זיהוי המזהים, Modifiers.
4. זיהוי ספרייה
5. superclass
6. interfaces
7. constructors
8. Methods
9. Fields
10. Annotation

זה אמור להספיק 🙂

Reflection כמו שאמרתי בכתבה הקודמת (לינק) הינה דרך ליצירת אובייקט בזמן ריצה, והדגש הוא כמובן בזמן ריצה!
השיטה הזאת נפוצה מאוד בחברות קטונות/גדולות, שכן היצירה של האובייקט מתרחשת בזמן ריצה דבר שמקנה לנו הרבה אפשרויות לשינויים והרחבה.

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

1. Get Class from Class
קיימות 2 אפשרויות:
– Class myObjectClass = MyObject.class
– (Class class = Class.forName(className
*When using the Class.forName() method you must supply the fully qualified class name
2. שם המחלקה
Class aClass = … //מה שראינו מקודם
String className = aClass.getName();
or

String simpleClassName = aClass.getSimpleName();

3. Modifiers["public", "private", "static" etc.]
int modifiers = aClass.getModifiers();
4. Package information
Package package = aClass.getPackage();
5. superClass
Class superclass = aClass.getSuperclass();
6. interfaces
בגלל העובדה שלמחלקה יכולים להיות מספר ממשק שהיא תממש אז נחזיר מערך של ממשקים
Class[] interfaces = aClass.getInterfaces();
7. Constructors
Constructor[] constructors = aClass.getConstructors();
8.Methods
Method[] method = aClass.getMethods();
9. Fields
Field[] method = aClass.getFields();
10. Annotations
Annotation[] annotations = aClass.getAnnotations();

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

תודה על ההקשבה

Reflection| Introduction

Hi All,

in the next few weeks i will explain on sessions about reflection API, i  will explain the basics of Java Reflection including how to work with arrays, annotations, generics and dynamic proxies, and do dynamic class loading and reloading.

reflection API is stong API that it very important for a developer to know to wrok with him.

Introduction:

Java's Reflection API's makes it possible to inspect classes, interfaces, fields and methods at runtime, without knowing the names of the classes, methods etc. at compile time. It is also possible to instantiate new objects, invoke methods and get/set field values using reflection.

Reflection by Sun site:

http://java.sun.com/developer/technicalArticles/ALT/Reflection/