Używam dziedziczonych klas komponentów bean dla mojego projektu. Tutaj niektóre super klasy będą puste, a podklasy mogą mieć pola & niektóre podklasy będą puste, a super klasa może zawierać pola.Java Reflection - Uzyskaj pola z klasy Sub oraz Super Class
Moim żądaniem jest pobranie wszystkich prywatnych/publicznych pól z klasy Podrzędnej, a także uzyskanie wszystkich publicznych/chronionych pól z Super klasy.
Poniżej próbowałem to osiągnąć. Ale nie udało mi się spełnić mojego wymogu. Proszę podać kilka sugestii, aby osiągnąć ten.
Field fields [] = obj.getClass().getSuperclass().getDeclaredFields();
Jeśli używam wyżej kod, mogę tylko pola Super klasa
Field fields [] = obj.getClass().getFields();
Jeśli używam wyżej kod, mogę dostać wszystkie pola z pola PODKLASA i super klasy
Field fields [] = obj.getClass().getDeclaredFields();
Jeśli użyję powyższego kodu, mogę uzyskać wszystkie klasy publiczne i prywatne dla wszystkich pól.
Co jeśli iterację subclass-> łańcucha nadklasy i zbierać na polach? –
Wygląda na to, że już wiesz, jak uzyskać wszystkie potrzebne dane, więc w czym problem? Jeśli uważasz, że powinieneś być w stanie uzyskać wszystko za jednym razem, to prawdopodobnie jest to błąd. Może być konieczne wykonanie wielu połączeń i może być konieczne odfiltrowanie niektórych danych. Ale nie rozumiem, co próbujesz osiągnąć i dlaczego niektóre kombinacje twoich przykładów tego nie powodują. – ajb
@ ajb. Próbuję uzyskać jedno wywołanie dla pól sub i super klasy. Zwróć uwagę na swój punkt widzenia i dziękuję za odpowiedź. – DEADEND