2014-09-02 3 views
-1

Существует класс А, который называет методы класса В.Класса Загрузка в Java с помощью пользовательского загрузчика классов

Теперь я генерацию класса B динамически, и каждый раз, когда новый класс B генерируется, A должен вызовите новую версию класса B. Теперь я загружаю класс B с помощью пользовательского загрузчика классов, но класс B также загружается с использованием загрузчика классов по умолчанию из класса A.

Итак, класс, загруженный моим пользовательским загрузчиком классов, становится не имеет значения. Класс B должен загружаться только с помощью пользовательского загрузчика классов, потому что я нуждаюсь в следующем: я хочу перезагрузить класс B более одного раза.

Как действовать?

Откуда я должен загрузить класс B? Это из класса А или даже до того, как загрузится класс А? Кроме того, требуется ли загружать класс A с помощью пользовательского загрузчика классов, поскольку класс A будет вызывать методы класса B?

+0

Почему (и как) загружается класс B из загрузчика классов по умолчанию? Можете ли вы это предотвратить? – Thilo

+0

Не тратьте, как на этот раз и энергию, придумывая длинное объяснение; вместо этого покажите нам свой код! –

+0

Нет, я не знаю, как это предотвратить. Итак, теперь в JVM существует два типа классов B, один загружается загрузчиком классов по умолчанию и загружается загрузчиком класса cutom. И, из-за последней части, я не могу перезагрузить класс типа B, поскольку он загружается загрузчиком класса по умолчанию –

ответ

0

Убедитесь, что A загружен через тот же загрузчик классов, с которого загружен B.

Если вы не используете только примитивы, вы получаете экземпляры класса ClassCastExceptions между загрузчиками классов.

Смежные вопросы