[Мне хочется странного] Можно-ли подменить класс при импорте в Java?
Есть некий Jar файл. В нем классы A и B. Класс A использует класс B внутри себя. Причем там, скажем так, гвоздями все так прибито, что методы из B используются чуть-ли не в каждой строчке (утрирую). Там че-то типа логирования, т.е. от замены класса B на пустышку функционал класса A вообще не пострадает.
Можно-ли, не внося изменений в Jar, использовать в своей программе класс A так, чтобы вместо B использовался fakeB ? (например с другой реализацией поведения, или вообще как заглушка)
При необходимости исходники классов A и B можно подправить, такая возможность есть, но тем не менее мне хочется чтобы в jar лежал именно A и B.
Мне че-то ничего умнее в голову не приходит, чем сделать interfaceB, normalB, fakeB и в конструкторе класса A явно указывать при создании что использовать.
p.s.
Возможно я хочу чего-то странного и мне надо делать как-то совсем иначе.
Самое простое решение - создать в своем проекте пакет, в котором лежит класс b и в этом пакете создать класс fakeB с сигнатурой класс b. Все это взлетит, но чтобы понять - читайте класслоадэры.
p.s. при использовании всяких девтулзов от сприннга при отладке и разработке на дев машине - может не взлететь.