我收到以下警告
注意:com ....... \ BeerSelect.java使用未经检查或不安全的操作。 注意:使用-Xlint重新编译:取消选中以获取详细信息。
我也指定了类型..我想知道原因而不是使用@SupressWarning选项。
我也检查了其他线程 What causes javac to issue the "uses unchecked or unsafe operations" warning
以下是一段代码..
package com.example.web;
import com.example.model.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class BeerSelect extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List<String> result = be.getBrands(c);
ServletContext sc = this.getServletConfig.getServletContext();
request.setAttribute("styles",result);
RequestDispatcher view = getServletConfig.getServletContext().getRequestDispathcer("result.jsp");
view.forward(request,response);
}
}
感谢任何形式的帮助..谢谢
答案 0 :(得分:0)
尝试使用
Iterator<String>
而不是Iterator 发生这种情况是因为Iterator接口是通用的。而且它不是一个错误,而只是一个警告。希望这有帮助
您好, 我稍微修改了你的代码,它应该编译没有警告:
public class BeerSelect extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List<String> result = be.getBrands(c);
ServletContext sc = this.getServletConfig().getServletContext();
request.setAttribute("styles",result);
RequestDispatcher view = sc.getRequestDispatcher("result.jsp");
view.forward(request,response);
}
}
我认为在这里获得此类警告的唯一方法是来自BeerExpert类,例如,如果它返回List而不是像这样的List:
public class BeerExpert {
public List getBrands(String color) {
return new ArrayList(); // really dumb implementation, you should have something smarter here
}
}
我建议您检查一下,如果需要更改为:
public class BeerExpert {
public List<String> getBrands(String color) {
return new ArrayList<String>();
}
}
希望这有帮助