تبلیغات

خواندن فیلد با نام فیلد در اندروید حتی فیلدهای غیرقابل دسترس

با استفاده از برنامه نویسی رفلکش (Reflection)، می‌توانید به یک فیلد از طریق نام آن و به صورت String دسترسی داشته باشید! و این کار باعث می‌شود تا بتوانید فیلدهای غیرقابل دسترسی private و protected را نیز از هرجایی که خواستید بخوانید.

روش انجام کار

ابتدا کتابخانه‌ی apache commons lang3 را به پروژه‌ی خود اضافه کنید:

compile 'org.apache.commons:commons-lang3:3.6'

حالا به صورت زیر می‌توان به فیلد دسترسی داشت:

//
Object object = FieldUtils.readField(targetObject, "fieldName", true);
View view = (View) object;
//

ورودی‌های متد readField:

  • ورودی اول: همان آبجکتی است که می‌خواهید فیلد را از آن بخوانید!
  • ورودی دوم: نام فیلد می‌باشد
  • ورودی سوم: تعیین می‌کند که به صورت اجباری این فیلد را بخواند. (پس اگر private و protected باشد نیز خوانده می‌شود)

خروجی متد readField: از نوع Object می‌باشد که می‌توانید با توجه به نوع فیلد، آن را به آبجکت مورد نظرتان Cast (تبدیل) کنید.

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای که امکانش باشه 🙃

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک