برنامه‌ای به زبان جاوا بنویسید که نام یک کلاس را از کاربر دریافت کند و با استفاده از Reflection لیست تمام فیلدها و متدهای (اعم از عمومی و خصوصی) آن را همراه با نوع و مدیفایرهایشان نمایش دهد.

9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:18

0.0

با استفاده از java.lang.reflect (کلاس‌های Class، Method، Field و ابزار Modifier) می‌توانید با Class.forName کلاس را بارگذاری کنید و سپس getDeclaredFields و getDeclaredMethods را برای گرفتن اعضای خصوصی و عمومی فراخوانی کنید؛ برای هر Field و Method نام، نوع بازگشتی/نوع، پارامترها و مدیفایرها را چاپ کنید. نکات: برای دسترسی به فیلدهای خصوصی می‌توان setAccessible(true) را استفاده کرد و خطاهای ممکن مثل ClassNotFoundException و IllegalAccessException را با try-catch مدیریت کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:18
دسته بندی ها: Java Java for beginner
nima در 201 روز قبل ساعت 06:50

وقتی با فیلدها و متدهای خصوصی کار می‌کنید، باید با setAccessible(true) دسترسی پیدا کنید و به تفاوت بین getDeclaredFields/getDeclaredMethods و getFields/getMethods توجه کنید. getDeclaredFields/getDeclaredMethods فقط اعضای تعریف‌شده در کلاس را برمی‌گردانند و اعضای والد را دربر نمی‌گیرند، بنابراین برای فهرست کامل از ارث‌بری باید از حلقه روی کلاس‌های والد استفاده کنید. برای نمایش دقیق، نوع بازگشتی متد و نوع پارامترها را همراه با modifiers چاپ کنید و خطاهای کلاس‌بارگذاری (ClassNotFoundException) و دسترسی (IllegalAccessException) را با پیام مناسب مدیریت کنید. همچنین خوب است به کاربر نشان بدهید که دسترسی به فیلدهای خصوصی ممکن است به دلیل سیاست‌های امنیتی محدود باشد و در محیط‌های تولیدی رفتار متفاوتی داشته باشد.

گزارش

1 پاسخ

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

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