在我的JSP中,我收到了关于此演员的警告
<%
Collection<Server> svr = (Collection<Server>)request.getAttribute("serverCollection");
%>
instanceOf
似乎无法在此处运作
答案 0 :(得分:3)
<%
@SupressWarnings("unchecked")
Collection<Server> svr = (Collection<Server>)request.getAttribute("serverCollection");
%>
顺便说一句,使用scriplets并不是一件好事,请阅读thread about avoiding scriplets。
答案 1 :(得分:1)
你不能“满足”那个警告。这是一个未经检查的演员,你不能真正做任何事情,因为该方法返回Object
。
如果您绝对肯定该属性将始终包含Collection<Server>
,则可以添加@SuppressWarnings("unchecked")
注释。
答案 2 :(得分:1)
您可以使用JSTL而不是scriptlet。它看起来像是:
<c:set var="svr" value="${requestScope['serverCollection']}"/>
答案 3 :(得分:0)
您无法避免此警告(除非通过抑制它)。问题是Java在运行时只能在运行时检查对象在运行时是否为Collection
类型。它无法检查它是Collection<Server>
类型。这就是错误的含义。