یک برنامه جاوا بنویسید که با استفاده از Reflection API نام، فیلدها و متدهای یک کلاس مشخص را نمایش دهد و سپس یک متد بدون پارامتر را روی یک نمونه از آن کلاس در زمان اجرا فراخوانی کند.

7.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:56

0.0

برای حل این مسأله از Reflection API جاوا استفاده کنید: ابتدا با Class.forName یا گرفتن .class شیء Class را به‌دست آورید، سپس با getDeclaredFields و getDeclaredMethods فیلدها و متدها را لیست کنید؛ برای دسترسی به اعضای خصوصی از setAccessible(true) استفاده کنید. برای فراخوانی متد بدون پارامتر از getDeclaredMethod و سپس Method.invoke روی یک نمونهٔ ساخته‌شده با newInstance یا سازندهٔ مناسب بهره ببرید. نکات مفید: قبل از invoke تعداد پارامترها را چک کنید، استثناهای مرتبط با Reflection (مثل ClassNotFoundException, IllegalAccessException, InvocationTargetException) را مدیریت کنید و در صورت نیاز از کلاس Modifier برای فیلتر کردن متدهای static یا عمومی استفاده نمایید.

توسط پژوهشگر در 202 روز قبل ساعت 02:56
دسته بندی ها: Java Java for beginner
nima در 202 روز قبل ساعت 08:03

برای این کار بهتر است نام کلاس را با Class.forName یا استفاده از .class به دست آورید و سپس فهرست فیلدها و متدها را با getDeclaredFields و getDeclaredMethods نمایش دهید. برای دسترسی به اعضای خصوصی از setAccessible(true) استفاده کنید و با فیلتر کردن با Modifier فقط اعضای موردنظر (مثلاً غیر static یا غیر عمومی) را نگه دارید. قبل از invoke، تعداد پارامترها را چک کنید و متدی بدون پارامتر را با getDeclaredMethod و سپس Method.invoke روی نمونهٔ ساخته‌شده با newInstance یا سازنده مناسب فراخوانی کنید. همیشه استثناهای مربوط به Reflection مانند ClassNotFoundException، IllegalAccessException و InvocationTargetException را مدیریت کنید و در صورت نیاز از caching برای بهبود کارایی استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری