Как мне удовлетворить предупреждение для приведения коллекции в java / jsp - PullRequest
1 голос
/ 29 июня 2011

В моем JSP я получаю предупреждение за этот акт

<%
  Collection<Server> svr = (Collection<Server>)request.getAttribute("serverCollection");
%>

instanceOf здесь не работает

Ответы [ 4 ]

3 голосов
/ 29 июня 2011
<%
    @SupressWarnings("unchecked")
    Collection<Server> svr = (Collection<Server>)request.getAttribute("serverCollection");
%>

Кстати, использование скриптов не очень хорошая вещь, прочитайте эту ветку о том, как избегать скриптов .

1 голос
/ 29 июня 2011

Вы можете использовать JSTL вместо скриптлетов. Это будет выглядеть так:

<c:set var="svr" value="${requestScope['serverCollection']}"/>
1 голос
/ 29 июня 2011

Вы не можете "удовлетворить" это предупреждение. Это неконтролируемое приведение, и вы ничего не можете с этим поделать, так как метод возвращает Object.

Если вы абсолютно уверены, что атрибут всегда будет содержать Collection<Server>, вы можете добавить @SuppressWarnings("unchecked") аннотацию.

0 голосов
/ 29 июня 2011

Вы не можете избежать этого предупреждения (кроме как подавляя его). Проблема заключается в том, что Java во время выполнения может только проверять, что объект имеет тип Collection во время выполнения. Он не может проверить, что он имеет тип Collection<Server>. Вот что означает ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...