|
Как правильно сделать Cast
|
|||
---|---|---|---|
#18+
Коллеги, как правильно сделать cast, чтобы погас Unchecked cast warning Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 17:08 |
|
Как правильно сделать 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:21 |
|
Как правильно сделать 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 в рантайме и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:31 |
|
|
start [/forum/topic.php?fid=59&tid=2120522]: |
0ms |
get settings: |
25ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
81ms |
get forum data: |
2ms |
get page messages: |
251ms |
get tp. blocked users: |
2ms |
others: | 324ms |
total: | 788ms |
0 / 0 |