Создание класса в том же пакете, что и во внешней библиотеке, для использования частных классов пакета - PullRequest
2 голосов
/ 17 октября 2019

Я создаю объект класса публичной библиотеки, который использует объект своего закрытого пакета в своем коде. Этот закрытый для пакета класс имеет некоторую искаженную логику. Теперь я хочу изменить логику. Любая идея, как это сделать, кроме как загрузить библиотеку, изменить ее код и затем импортировать ее в виде модуля?

Что я уже сделал:

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

Я получил вышеуказанную идею, прочитав где-то следующие строки:

В Java инкапсуляция может быть легко нарушена, поскольку внешний код может определять классы в тех же пакетах, которые используются вашим кодом, и, таким образом, получать доступ к вашим частным декларациям пакета

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...