未指定或不安全的操作,即使在指定类型后也是如此

时间:2013-03-23 17:23:59

标签: unsafe unchecked-exception

我收到以下警告

注意: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); 
}

}

感谢任何形式的帮助..谢谢

1 个答案:

答案 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>();
}

}

希望这有帮助