Я создаю объект класса публичной библиотеки, который использует объект своего закрытого пакета в своем коде. Этот закрытый для пакета класс имеет некоторую искаженную логику. Теперь я хочу изменить логику. Любая идея, как это сделать, кроме как загрузить библиотеку, изменить ее код и затем импортировать ее в виде модуля?
Что я уже сделал:
Я создалновый класс с тем же именем, создав новый пользовательский пакет с тем же именем. Я имею в виду, что я создал пакет в своей корневой папке com.abc.xyz
и создал в нем класс X
. Но проблема в том, что мой код все еще использует старую библиотечную версию класса X
вместо этой новой. Я проверил это, прикрепив точки отладки в моем классе X
. Интересно, что когда я перемещаюсь по средствам навигации по коду в Android Studio IDE, это показывает, что мой класс Y
использует мою версию класса X
, а не автора библиотеки. Итак, второй вопрос: возможна ли эта техника даже в Котлине, если да, то, что я делаю не так?
Я получил вышеуказанную идею, прочитав где-то следующие строки:
В Java инкапсуляция может быть легко нарушена, поскольку внешний код может определять классы в тех же пакетах, которые используются вашим кодом, и, таким образом, получать доступ к вашим частным декларациям пакета