2011-06-29 46 views
1

在我的JSP我得到这个警告投如何满足警告在Java铸造收集/ JSP

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

instanceOf似乎没有在这里工作

+0

什么是警告内容? – Giann

+0

在这条线找到多个注释: \t - 类型安全:未选中从对象转换为 \t收藏 \t - 类型安全:未选中从对象转换为 \t收藏 stackoverflow

+1

'@SuppressWarnings(“未登记”)' –

回答

3
<% 
    @SupressWarnings("unchecked") 
    Collection<Server> svr = (Collection<Server>)request.getAttribute("serverCollection"); 
%> 

顺便说一句,使用scriplets是不是很好的东西,读这thread about avoiding scriplets

1

你不能“满足”该警告。这是一个未经检查的演员表,因为该方法返回Object,所以您无法对其执行任何操作。

如果您绝对肯定该属性将始终包含Collection<Server>您可以添加@SuppressWarnings("unchecked")注释。

1

您可以使用JSTL而不是scriptlet。它看起来像:

<c:set var="svr" value="${requestScope['serverCollection']}"/> 
+0

那个人在哪里与代码形成对比? – stackoverflow

+0

@ Marshll187:它会在同一个地方。 –

0

你不能避免这个警告(除了通过抑制它)。问题是Java在运行时只能在运行时检查该对象的类型是Collection。它无法检查它是否为Collection<Server>。这就是错误的含义。

+0

谢谢你的回应 – stackoverflow