|
|
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
Есть такая иерархия класслоадеров: ClassLoader1 -> BaseClassLoader ClassLoader2 -> BaseClassLoader В класслоадере ClassLoader1 есть класс CL (в jarнике который доступен только этому класслоадеру) И в класслоадере ClassLoader2 есть класс CL (в jarнике который доступен только этому класслоадеру) Т.е. названия одинаковые. Мы под ClassLoader1 вставляем в мапу например sharedMap.put("X", new CL()) Вопрос, что будет когда мы сделаем под ClassLoader2 CL cl = sharedMap.get("X") ? ClassCastException? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 13:38 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
no56892ClassCastException? Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:01 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
А если допустим сделаем CL extends SharedBaseClass, SharedBaseClass доступен в BaseClassLoader, то что будет если: Под ClassLoader1 кладем sharedMap.put("XXX", new CL()); Под ClassLoader2 вытаскиваем SharedBaseClass sbc = sharedMap.get("XXX"); ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:14 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
no56892, Мне вот эта вот стрелочка в первом сообщении как-то сразу не понравилась. Иерархия класслоадеров не имеет никакого отношения к наследованию. Под иерархией подразумевается делегирование поиска и загрузки родительскому загрузчику ClassLoader.getParent(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:25 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Да, имел ввиду "-> " == "has parent". авторМне вот эта вот стрелочка в первом сообщении как-то сразу не понравилась. Иерархия класслоадеров не имеет никакого отношения к наследованию. Под иерархией подразумевается делегирование поиска и загрузки родительскому загрузчику ClassLoader.getParent(). Тоесть класс CL вообще не создастся(Exception) (если он extends BaseSharedClass)? Или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:33 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
no56892, Какое отношение наследование "extends" имеет к вопросу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:34 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
Blazkowiczno56892, Какое отношение наследование "extends" имеет к вопросу? Ааа, блин. Прошу прощения. Как всегда, не внимательно читаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:35 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Тоесть авторА если допустим сделаем CL extends SharedBaseClass, SharedBaseClass доступен в BaseClassLoader, то что будет если: Под ClassLoader1 кладем sharedMap.put("XXX", new CL()); Под ClassLoader2 вытаскиваем SharedBaseClass sbc = sharedMap.get("XXX"); ? Будет тот же ClassCastException? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:35 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
no56892А если допустим сделаем CL extends SharedBaseClass, SharedBaseClass доступен в BaseClassLoader, то что будет если: Под ClassLoader1 кладем sharedMap.put("XXX", new CL()); Под ClassLoader2 вытаскиваем SharedBaseClass sbc = sharedMap.get("XXX"); ? Ну, как бы, вроде, ничего не будет. Конфликта нет. Но есть другие сложные ситуации, которые в похожих случаях приводят не к ClassCastException, а к другим ислючениям: LinkageError, AbstractMethodError, и ещё какой-то, ЕМНИП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:39 |
|
||
|
ClassLoaders...
|
|||
|---|---|---|---|
|
#18+
no56892Под ClassLoader2 вытаскиваем SharedBaseClass sbc = sharedMap.get("XXX"); Будет тот же ClassCastException? Нет, не будет. У вас ошибочное положение "Под ClassLoader2 вытаскиваем". Нельзя ничего "вытащить" под ClassLoader. ClassLoader ищет, грузит ресурсы и формирует классы. Будет обычный объект класса CL загруженого первым класслоадером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2017, 14:41 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39439678&tid=2122974]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 297ms |

| 0 / 0 |
