Как клонировать удаленный репозиторий git с Android Studio?

Да, есть способы загрузить классы и «разгрузить» их позже. Хитрость заключается в том, чтобы реализовать свой собственный загрузчик классов, который находится между загрузчиком класса высокого уровня (загрузчик класса System) и загрузчиками классов серверов приложений, и надеяться, что загрузчики классов сервера приложений делегируют загрузку классов в верхние загрузчики .

Класс определяется его пакетом, его именем и загружаемым им загрузчиком классов. Запрограммируйте загрузчик классов «прокси», который является первым, который загружается при запуске JVM. Рабочий процесс:

  • Программа запускается, и настоящий «основной» класс загружается этим прокси-загрузчиком классов.
  • Каждый класс, который затем обычно загружается (т. Е. Не через другой загрузчик классов реализация, которая могла бы разрушить иерархию) будет делегирована этому загрузчику классов.
  • Прокси-загрузчик классов делегирует java.x и sun.x системному загрузчику классов (эти не должны загружаться через любой другой загрузчик классов, чем системный загрузчик классов).
  • Для каждого заменяемого класса создайте экземпляр класса loadload (который действительно загружает класс и не передает его родительскому загрузчику классов) и загружает его через это.
  • Сохраните пакет / имя классов как ключи и загрузчик классов как значения в структуре данных (например, Hashmap).
  • Каждый раз, когда прокси-загрузчик классов получает запрос для класса, который был прежде чем он возвращает класс из загрузчика классов, хранящегося ранее.
  • Достаточно найти массив байтов класса загрузчиком класса ( или «удалить» пару ключ / значение из вашей структуры данных) и перезагрузить класс, если вы хотите его изменить.

Выполнено прямо там не должно быть ClassCastException или LinkageError и т. д.

Для получения дополнительной информации о иерархиях загрузчика классов (да, это именно то, что вы здесь реализуете;) смотрите «Сервер Java Programming "Теда Ньюварда - эта книга помогла мне реализовать что-то очень похожее на то, что вы хотите.

24
задан Dom 1 July 2016 в 21:06
поделиться