Привет Я в ситуации, когда у меня есть доступ к классу House
Который расширяет Foundation
(Обратите внимание, что имена классов являются гипотетическими). И у меня есть объект типа House
, я хотел бы получить поле Foundation.width
которое настроено как личное. Я пришел с кодом:Отражение - Кастинг объекта к нему неизвестно Суперкласс на лету?
1.) Field list = houseObject.getClass().getSuperclass()
.getDeclaredField("width");
2.) list.setAccessible(true);
3.) this.width = (double)list.get(foundationObject);
Проблема с линии № 3 у меня нет доступа к foundationObject, у меня есть доступ к houseObject, и так как я действительно не знаю Класс Фонда в время компиляции я не могу отличить (Foundation)foundationObject
.
Есть ли решение для этого? Спасибо за помощь.
Лучший способ сформулировать этот вопрос также может быть: Могу ли я получить нестатический объект типа Суперкласс из объекта?
Почему вы не пытаетесь list.get (houseObject)? Я предполагаю, что изменение доступности будет каскадным для подклассов. –
Это работает, спасибо. Сообщение как ответ И я соглашусь. – snocavotia
Я добавил ответ –