Witam!
mam następujący problem.
Załóżmy że zdefiniowałem sobie klasę kl1 oraz klasę kl2 i w klasie kl2 jedną ze składowych jest klasa kl1.
Czy jest jakaś możliwość z poziomu klasy kl1 zwrócić klasę kl2 (właściciela kl1) ?
pozdrawiam;
Witam!
mam następujący problem.
Załóżmy że zdefiniowałem sobie klasę kl1 oraz klasę kl2 i w klasie kl2 jedną ze składowych jest klasa kl1.
Czy jest jakaś możliwość z poziomu klasy kl1 zwrócić klasę kl2 (właściciela kl1) ?
pozdrawiam;
Jesli trzymasz wszystkie obiekty kl2 w jednym miejscu ( powiedzy liscie ) to problemu nie ma. Jesli natosmiast sa porozrzucane to ciezko bedzie. Nie wiem ale moze mechanizm odbicia by cos zdzialal ale az tak dobrze to sie nie znam. A najlepiej zastanow sie co chcesz zrobic i czy to na pewno ma tak wygladac.
Jest taka możliwość, ale trzeba by pogrzebać w praktyce na stosie jvma. Czyli classloader, reflection api + własne rozszerzenie do java memory profiler.
Generalnie lepszą i tańszą metodą jest przekazywanie klasie k1 referencji do właściciela czyli k2.
ok, dzięki.
Tak właśnie zrobiłem.
Utworzyłem w klasie dodatkowe pole prywatne, które przechowue referencję do właściciela.
Myślałem po prostu że można to zrobić ładniej; że istnieje coś podobnego do zwracania klasy rodzica (jak getSuperclass() ). Ale tak też może być.
pozdrawiam;