Предположим, у меня есть класс
class car
{
int color = 1;
seats carSeats = new seats();
class seats
{
int numSeats = 4;
}
}
Используя отражение Java, я могу использовать следующее:
car c = new car();
Field[] carFields = c.getClass().getDeclaredFields();
carFields будет иметь в качестве полей {color, carSeats}. Экземпляр, carSeats, имеет другое поле с именем numSeats.
Технически, я должен быть в состоянии сделать еще одну операцию getFields (), такую:
Field[] seatFields = carFields[1].getClass().getDeclaredFields();
Но мне дают данные для мусора (ОБЪЯВЛЕНО, ОБЩЕСТВЕННЫЕ?) Почему так? Разве отражение Java не работает для внутренних классов?