Paste
Copy
Cut
Options

¡Tu solución está lista!

Nuestra ayuda de expertos desglosó tu problema en una solución confiable y fácil de entender.

Mira la respuesta
  • Pregunta: BR18"ریفلیکشن پروگرام کی ساخت کو دریافت کرنے کا ایک طریقہ ہے۔ یہ بہت مفید ہے جب آپ کو اپنے کوڈ کو بہت لچکدار بنانے کی ضرورت ہو۔ اس لیب میں دو فائلیں شامل ہیں:ملازم.جاواEmployeeQuery.javaEmployee.java

     BR18
    "ریفلیکشن پروگرام کی ساخت کو دریافت کرنے کا ایک طریقہ ہے۔ یہ بہت مفید ہے جب آپ کو اپنے کوڈ کو بہت لچکدار بنانے کی ضرورت ہو۔ اس لیب میں دو فائلیں شامل ہیں:
    ملازم.جاوا
    EmployeeQuery.java
    Employee.java فائل اسی طرح کی ہے جو ہم نے لیکچر میں تیار کی تھی، لیکن کچھ فیلڈز، گیٹر، اور سیٹٹر کے طریقے بدل گئے ہیں۔ آپ لیب کے دوران اس فائل میں ترمیم نہیں کریں گے۔
    EmployeeQuery.java فائل کو دیکھیں۔ نوٹ کریں کہ یہ ایک ایسا پروگرام ہے جو صارف کو ملازم آبجیکٹ سے ڈیٹا استفسار کرنے دیتا ہے۔ بنیادی طریقہ ایک لوپ ہے جو صارف سے ان پٹ حاصل کرتا ہے۔ لوپ صارف کے ان پٹ پر کارروائی کرنے کے لیے سکینر کا استعمال کرتا ہے۔ سکینر API کی ایک کلاس ہے جو ٹیکسٹ ڈیٹا کو پارس کرنے کے لیے استعمال ہوتی ہے۔ اس صورت میں، ہمیں صرف اگلا "لفظ" حاصل کرنے کی ضرورت ہے جو صارف ٹائپ کرتا ہے۔ اگر صارف getName، getAddress یا getCity میں ٹائپ کرتا ہے تو پروگرام ڈیٹا اور لوپس کے ساتھ جواب دیتا ہے۔ اگر صارف چھوڑنے میں داخل ہوتا ہے، تو پروگرام رک جاتا ہے۔
    سب سے پہلے نوٹ کریں کہ اگر ہم صارف کو Employee.java کے تمام ممکنہ حاصل کرنے والے طریقوں سے استفسار کرنے دینا چاہتے ہیں، تو ہمیں ایک بہت بڑا if بیان کی ضرورت ہوگی۔ اس کے علاوہ، اگر ہم بعد میں Employee.java فائل کو گیٹر کے طریقے شامل کرکے یا ہٹا کر تبدیل کرنے کا فیصلہ کرتے ہیں، تو ہمیں EmployeeQuery.java فائل کو تبدیل کرنا ہوگا۔
    تاہم، اگر ہم عکاسی کا استعمال کرتے ہیں، تو ہمیں بہت بڑا if بیان لکھنے کی ضرورت نہیں ہے، اور ہمیں EmployeeQuery.java فائل کو تبدیل کرنے کی ضرورت نہیں ہے جب بھی Employee.java فائل تبدیل ہوتی ہے۔
    ٹاسک 3: عکاسی کے ساتھ پروگرامنگ
    عکاسی کو استعمال کرنے کے لیے، آپ کو java.lang.reflect پیکیج سے کلاسز درآمد کرنے کی ضرورت ہے۔
    عکاسی کا استعمال کسی کلاس یا شے کے مواد کو جانچنے کے لیے کیا جاتا ہے۔ مثال کے طور پر، اگر آپ کے پاس کوئی شے ہے جو String s = new String() ہے، تو آپ بیان استعمال کر سکتے ہیں۔
    کلاس cls = s.getClass();
    ، اور اب cls ایک متغیر ہے جو s کے مواد کو محفوظ کرتا ہے۔
    s سے طریقہ حاصل کرنے کے لیے، آپ استعمال کر سکتے ہیں۔
    طریقہ طریقہ = cls.getMethod(methodName, parameterArray);
    دوسرا پیرامیٹر آپ کے مطلوبہ طریقہ کے لیے پیرامیٹر کی اقسام کی فہرست ہے۔ یہ کلاس کی ایک صف ہونی چاہیے۔ بغیر پیرامیٹر کے طریقہ حاصل کرنے کے لیے، صرف ایک خالی صف میں گزریں: نئی کلاس[0]۔
    طریقہ ایک طریقہ ذخیرہ کرتا ہے۔ طریقہ کو کال کرنے کے لیے، استعمال کریں۔
    method.invoke(s، argumentArray)
    s وہ شے ہے جس پر آپ طریقہ کو کال کر رہے ہیں، اور argumentArray طریقہ کو منتقل کرنے کے لیے دلائل کی ایک صف ہے۔ یہ آبجیکٹ کی ایک صف ہونی چاہیے۔ اگر آپ بغیر کسی دلیل کے کسی طریقہ کو کال کر رہے ہیں تو، ایک خالی صف کو پاس کریں: new Object[0]۔
    نوٹ: کلاس کی ایک صف بناتے وقت آپ کو انتباہی پیغام ملے گا۔ اس کی وجہ یہ ہے کہ کلاس کی ایک عام قسم ہے، لیکن چونکہ آپ پیرامیٹرائزڈ جنرک کے ساتھ ایک صف نہیں بنا سکتے، جب آپ کلاس کی قسم کی صف بناتے ہیں تو آپ کو عام کو چھوڑنا پڑتا ہے۔ آپ کو اس انتباہی پیغام کو نظر انداز کرنا چاہیے۔
    آپ کو کیا کرنا ہے:
    جیسا کہ اوپر بیان کیا گیا ہے، آپ کو یہ نہیں بتایا جائے گا کہ کرداروں کو کب تبدیل کرنا ہے۔ اس کے بجائے، آپ اور آپ کے ساتھی کو لیب میں مختلف مقامات پر فیصلہ کرنا چاہیے کہ ڈرائیور کون ہونا چاہیے اور کون نیویگیٹر ہونا چاہیے۔ اگرچہ آپ کو سوئچ کرنے کے لیے نہیں کہا جائے گا، پھر بھی آپ کو اچھی جوڑی والے پروگرامنگ پریکٹس کی پیروی کرنے کی ضرورت ہے: صرف موجودہ ڈرائیور ہی دستاویز میں ترمیم کر سکتا ہے۔
    لیب کے لیے، کوڈ کو تبدیل کریں تاکہ صارف جو بھی حاصل کرنے والا طریقہ استعمال کرے اسے آپ کال کریں اور آپ اس طریقہ کو کال کرنے کا نتیجہ پرنٹ کریں۔ آپ کو عکاسی کا استعمال کرنا ہے تاکہ اصل طریقہ کا نام آپ کے کوڈ میں کہیں بھی ظاہر نہ ہو۔ مثال کے طور پر، صارف کو getName، getCity، getAddress وغیرہ میں ٹائپ کرنے کے قابل ہونا چاہیے، اور پروگرام مناسب ڈیٹا کے ساتھ جواب دے گا۔ پروگرام کو تب بھی رکنا چاہیے جب صارف چھوڑنے میں داخل ہوتا ہے، اور پروگرام کو نظر انداز کرنا چاہیے (یا غلطی کا پیغام پرنٹ کریں) اگر صارف کوئی ایسی قدر داخل کرتا ہے جو طریقہ کا نام نہیں ہے، اور جاری رکھیں۔
    ٹاسک 4: تھوڑا اور چیلنج 
  • Chegg Logo
    Hay 2 pasos para resolver este problema.
    Solución
    Paso 1

    Process Used

    1. Understand the Requirements:

      • The user should be able to input the name of any getter meth...

    Mira la respuesta completa
    answer image blur
    Paso 2
    Desbloquea
    Respuesta
    Desbloquea