Поле доступа в закрытом классе посредством отраженияJAVA

Программисты JAVA общаются здесь
Гость
Поле доступа в закрытом классе посредством отражения

Сообщение Гость »


Я пытаюсь получить доступ к частному полю mRadialTimePickerModeButton в android.widget.TimePickerClockDelegate

TimePickerClockDelegate — это закрытый класс, расширяющий TimePicker.AbstractTimePickerDelegate, который реализует TimePicker.TimePickerDelegate

Я не могу создать новый экземпляр, мне нужно изменить это поле в этом конкретном экземпляре.

Я пробовал получить к нему доступ следующим образом:

Поле поля = TimePickerDialog.class.getDeclaredField("mTimePicker"); поле.setAccessible(истина); TimePicker timePicker = (TimePicker) field.get(this); Поле делегата = TimePicker.class.getDeclaredField("mDelegate"); делегатField.setAccessible(истина); Делегат объекта = делегатField.get(timePicker); Поле buttonField = делегат.getClass().getDeclaredField("mRadialTimePickerModeButton"); buttonField.setAccessible(истина); ImageButton радиальныйTimePickerModeButton = (ImageButton) buttonField.get(делегат); Получение: в классе Landroid/widget/TimePickerClockDelegate нет поля mRadialTimePickerModeButton; (объявление android.widget.TimePickerClockDelegate появляется в /system/framework/framework.jar!classes4.dex)

Вернуться в «JAVA»