Mam metodę statyczną w niektórych starszych kod, który jest wywoływana przez wielu klientów. Oczywiście nie mam opcji, aby to zmienić lub zmienić zachowanie poprzez zastrzyk zależności. Nie wolno mi modyfikować istniejącej klasy.Jak zmienić zachowanie metody poprzez odbicie?
Co chcę teraz zrobić, to zmienić zachowanie (ta metoda - z tym samym podpisem i typem powrotu) za pomocą odbicia.
Czy to możliwe? Jeśli nie, czy jakikolwiek wzór może mnie uratować?
Dzięki!
EDYCJA: Istnieje pewne zamieszanie na temat tego, co mogę zmienić/zmodyfikować. Nie mogę zmienić żadnej istniejącej klasy/metody - ale mogę dodać więcej klas do projektu. Najlepsze, co mogę zrobić z istniejącymi klasami, jest ich opisywanie. Wszystko po to, aby uniknąć łamania czegokolwiek w istniejącym kodzie - co oznacza pełną rundę testowania dużego projektu.
EDYCJA 2: java.lang.Instrumentation nie jest dostępny dla Androida - a może brzmi jak dobre dopasowanie!
Dlaczego odbicie? –
Nie możesz tego zmienić, ale możesz modyfikować je za pomocą odbicia? To wydaje się bardziej ryzykowne. – Keppil
Myślę, że skończy się to koszmarnym utrzymaniem. Kod będzie leżał na kimś, kto go czyta. Idź i uzyskaj zgodę na zmianę tej klasy. – SpaceTrucker