2011-02-16 61 views
3

注:我使用JSP與NetBeans,我收到以下錯誤

C:\Users\Greg\Documents\NetBeansProjects\abalon3\build\generated\src\org\apache\jsp\user2_jsp.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

代碼:

<% 
    String like=" "; 
    Vector<String> vcd = new Vector<String>(); 
    Vector<String> vbo = new Vector<String>(); 
    vcd=CheckUser.search_latest_cd(); 
    int jc=vcd.size(); 
    vbo=CheckUser.search_latest_books(); 
    int jb=vbo.size(); 
    int i=0; 

%> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<table border="1" cellspacing="10" 
bgcolor=#99FFFF> 
<tr> 
<th>Author</th> 
<th>Title</th> 
<th>Summary</th> 
<th>Genre</th> 
<th>year</th> 
<th>Price</th> 
<th>ID</th> 
</tr> 
<%if(vbo.size()>0){for(i=jb;i<jb;i-=7){%> 
<tr><td><%out.print(vbo.get(i-6));%></td><td><%out.print(vbo.get(i-5));%></td> 
<td><%out.print(vbo.get(i-4));%></td><td><%out.print(vbo.get(i-3));%></td> 
<td><%out.print(vbo.get(i-2));%></td><td><%out.print(vbo.get(i-1));%></td> 
<td><%out.print(vbo.get(i));}}%></td></tr> 
</table> 

誰能告訴我在哪裏的問題?

+1

哦,我的眼睛。 Scriptlet代碼不應該在世界上佔有一席之地。 – duffymo 2011-02-16 00:58:42

+0

請閱讀最新的教程/書籍。這是編寫JSP/HTML的90年代的方法。 – BalusC 2011-02-16 13:22:37

回答

1

嘗試做有消息說什麼:

重新編譯-Xlint:未經檢查的詳細信息。

1

vcd=CheckUser.search_latest_cd();vbo=CheckUser.search_latest_books();回報 Vector<String>

unchecked or unsafe operations的原因通常是編譯器無法檢查generictype。閱讀here瞭解更多詳情。

此外,在較新版本的JVM中不推薦使用Java Vector。你應該考慮使用ListArrayList

另一個需要注意的是,你不需要創建一個永遠不會被使用的對象。這裏是你的代碼:

Vector<String> vcd = new Vector<String>(); 
vcd=CheckUser.search_latest_cd(); 

您可以直接設置對象vcd

Vector<String> vcd = CheckUser.search_latest_cd(); 

Vector<String> vcd = null; 
vcd=CheckUser.search_latest_cd(); 

創建這是絕對不能用新Vector對象是浪費時間。

0

最後但並非最不重要的是,您所看到的不是錯誤,而是編譯器的警告(儘管可以將某些編譯器設置爲將警告處理爲錯誤,但這不是Sun Java的默認行爲編譯器)。

相關問題