Creating Custom Annotations in Android

annotataion : هي بيانات وصفيه metadata

البيانات الوصفيه : هي مجموعة بيانات تعطي معلومات حول بيانات اخري
وهنا annotataion هي بشكل اساسي تعطي معلومات حول الكود

انشاء annotation مخصص : 

@Target(ElementType.METHOD)

@Retention(RetentionPolicy.RUNTIME)
 
@interface Status { 
  public enum Priority {LOW, MEDIUM, HIGH}
  Priority priority() default Priority.LOW;
  String author() default “Amit”;
  int completion() default 0; 
}


@Target : اين يمكن وضع هذا اذا لم يحدد يمكن استخدامه في كل مكان 
  • ElementType.TYPE (class, interface, enum)
  • ElementType.FIELD (instance variable)
  • ElementType.METHOD
  • ElementType.PARAMETER
  • ElementType.CONSTRUCTOR
  • ElementType.LOCAL_VARIABLE
  •  
  •  
  •  @Qualifier : هي تعمل على تاهيل dependency  وهي تستخدم للتمييز بين كائنات من نفس النوع ولكل و instance مختلف
  •  
  • @Retenttion :كم المده التي يحتفظ ب annotation

    1. RetentionPolicy.SOURCE : هذا النوع يتم تجاهله اثناء compiler ولا يحتاج الى تحويل الى يايت كود
    2. RetentionPolicy.CLASS  : هذا النوع يتم تجاهبة اثناء تحميل الكلاس وهذا هو الافتراضي 
    3. RetentionPolicy.RUNTIME : لا يتم التجاهل ويكون متاح في وقت التشغيل 
     
  •  
  • @Scope : يستخدم لتحديد النطاق الذي تستخم فيه عناصر التبعيه 
  • اذا كان هناك كلاس يريد تبعيه والداله المحقونه اليه معنونه ب scope , كل instance من هذا الكلاس يسال عن التبعيه للحصول على متغيرات خاصه به 
  •  
  •  




تعليقات

المشاركات الشائعة من هذه المدونة

مقدمة عن Dagger 2

local function

Architecture patterns in Android part 1 - معماريه كتابه الكود في الاندرويد جزء 1