Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.02.2021, 17:08
|
|||
---|---|---|---|
|
|||
Как правильно сделать Cast |
|||
#18+
Коллеги, как правильно сделать cast, чтобы погас Unchecked cast warning Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.02.2021, 19:21
|
|||
---|---|---|---|
Как правильно сделать Cast |
|||
#18+
Zzz79 Mixrud Коллеги, как правильно сделать cast, чтобы погас Unchecked cast warning Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
никак в твоем случае,грубо говоря у тебя есть некий супер класс Animal и два наследника CAT и DOG по сути для компилятора твой каст выглядит как собака в кота,поэтому и горит варнинг Вообще мимо. Warn в данном случае связан с тем, что DbContext это generic. В runtime типы-параметры получить нельзя, поэтому нет гарантий, что значение действительно будет содержать DbContext <T> , а не от какого-нибудь другого типа (такая ситуация называется Heap pollution (https://en.wikipedia.org/wiki/Heap_pollution)) И его в данном примере вообще нельзя убрать. Сам warn можно убрать, используя cast с wildcart параметром (e.g. DbContext <?> ), но, естественно, такое изменение сделает код некомпилируемым. Так что просто использовать @SuppressWarning("unchecked") (если не путаю), если глаза мозолит ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.02.2021, 19:31
|
|||
---|---|---|---|
Как правильно сделать Cast |
|||
#18+
Zzz79 Lelouch пропущено... Вообще мимо. Warn в данном случае связан с тем, что DbContext это generic. В runtime типы-параметры получить нельзя, поэтому нет гарантий, что значение действительно будет содержать DbContext <T> , а не от какого-нибудь другого типа (такая ситуация называется Heap pollution (https://en.wikipedia.org/wiki/Heap_pollution)) И его в данном примере вообще нельзя убрать, не меняя остальной код. Сам warn можно убрать, используя cast с wildcart параметром (e.g. DbContext <?> ), но, естественно, такое изменение сделает код некомпилируемым. Так что просто использовать @SuppressWarning("unchecked") (если не путаю), если глаза мозолит написал тоже самое что и я) согласен что может чуть мимо( так как действительно в рантайме не понятно что за тип придет),но если автор это без дженериков изобразит- он получит ошибку,так как в его коде кастуется собака в кошку . Но warn не будет, если использовать типы без параметров) Если каст не выполнится, то будет ClassCastException в рантайме и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=59&tablet=1&tid=2120522]: |
0ms |
get settings: |
7ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
40ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
109ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 479ms |
0 / 0 |