RiseOfDeath
@RiseOfDeath
Диванный эксперт.

[Мне хочется странного] Можно-ли подменить класс при импорте в Java?

Есть некий Jar файл. В нем классы A и B. Класс A использует класс B внутри себя. Причем там, скажем так, гвоздями все так прибито, что методы из B используются чуть-ли не в каждой строчке (утрирую). Там че-то типа логирования, т.е. от замены класса B на пустышку функционал класса A вообще не пострадает.
Можно-ли, не внося изменений в Jar, использовать в своей программе класс A так, чтобы вместо B использовался fakeB ? (например с другой реализацией поведения, или вообще как заглушка)

При необходимости исходники классов A и B можно подправить, такая возможность есть, но тем не менее мне хочется чтобы в jar лежал именно A и B.

Мне че-то ничего умнее в голову не приходит, чем сделать interfaceB, normalB, fakeB и в конструкторе класса A явно указывать при создании что использовать.

p.s.
Возможно я хочу чего-то странного и мне надо делать как-то совсем иначе.
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ответы на вопрос 2
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Курите рефлексии, класслоадеры, агенты. Выбирайте что вам больше подойдет.
Ответ написан
Комментировать
@cudu
java developer
Самое простое решение - создать в своем проекте пакет, в котором лежит класс b и в этом пакете создать класс fakeB с сигнатурой класс b. Все это взлетит, но чтобы понять - читайте класслоадэры.

p.s. при использовании всяких девтулзов от сприннга при отладке и разработке на дев машине - может не взлететь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы