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