2011-06-29 77 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