حتما پیش از شرکت در مسابقه، توضیحات مسابقه را در بلاگ Quera مطالعه کنید.
همچنین برای شرکت در دورههای کارآموزی بلتات لطفا این فرم را تکمیل کنید.
توجه کنید که نیازی به پاسخ دادن به همهی سوالات نیست؛ زمینههای مورد نظرتان را انتخاب کرده و در آنها در مسابقه شرکت کنید.
قرار است برنامهای بنویسید که ساخت نمونهها را به عهده بگیرد.
فایلهای برنامه را از source دانلود نمایید.
با توجه به توضیحات زیر، متد init از کلاس Initializer را پیادهسازی کنید.
این متد لیستی از نام کلاسهایی که قرار است بر روی آنها عملیات انجام دهد دریافت میکند. سپس از تمام کلاسهای که دارای Annotation از نوع Instantiate میباشند، یک شی (نمونه) میسازد. دقت کنید که باید از هر نوع کلاس تنها یک بار نمونه ساخته شود. اگر در هنگام گرفتن شی Class یا ساختن نمونه از کلاسی که دارای Annotation مربوطه است خطایی رخ داد، خطایی از نوع InitializeException پرتاب کنید. پس خطاهای دیگر مثل ClassNotFoundException را دریافت نموده و به جای آن خطای گفته شده را پرتاب کنید.
پس از ساختهشدن نمونهها، باید ارتباط بین نمونهها فراهم شود.
فیلدهای مختلفی در کلاسها وجود دارد. برای هر کلاسی که از آن نمونه ساختهایم، اگر فیلدی دارای Annotation از نوع Connect است، باید مقدار آن برابر یک شی از کلاسی شود که نشاندهندهی تایپ آن فیلد است و از آن نمونه ساختهایم. اگر کلاس موردنظر یا نمونهای از آن وجود نداشت، خطایی از نوع InitializeException پرتاب کنید. پس خطاهای دیگر مثل ClassNotFoundException را دریافت نموده و به جای آن خطای گفته شده را پرتاب کنید.
برای حل سوال به نکات زیر توجه کنید:
یک فایل zip است که وقتی آن را باز میکنیم فقط فایل Initializer.java را ببینیم.