با استفاده از برنامه نویسی رفلکش (Reflection)، میتوانید به یک فیلد از طریق نام آن و به صورت String دسترسی داشته باشید! و این کار باعث میشود تا بتوانید فیلدهای غیرقابل دسترسی private و protected را نیز از هرجایی که خواستید بخوانید.
روش انجام کار
ابتدا کتابخانهی apache commons lang3 را به پروژهی خود اضافه کنید:
1 |
compile 'org.apache.commons:commons-lang3:3.6' |
حالا به صورت زیر میتوان به فیلد دسترسی داشت:
1 2 3 4 |
// Object object = FieldUtils.readField(targetObject, "fieldName", true); View view = (View) object; // |
ورودیهای متد readField:
- ورودی اول: همان آبجکتی است که میخواهید فیلد را از آن بخوانید!
- ورودی دوم: نام فیلد میباشد
- ورودی سوم: تعیین میکند که به صورت اجباری این فیلد را بخواند. (پس اگر private و protected باشد نیز خوانده میشود)
خروجی متد readField: از نوع Object میباشد که میتوانید با توجه به نوع فیلد، آن را به آبجکت مورد نظرتان Cast (تبدیل) کنید.
نظرات ثبت شده بدون دیدگاه