0

我收到以下警告

注意:com.......\BeerSelect.java 使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。

我也指定了类型。我想知道原因而不是使用@SupressWarning 选项。

我也检查了其他线程是 什么导致 javac 发出“使用未经检查或不安全的操作”警告

下面是一段代码..

    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); 
}

}

任何形式的帮助表示赞赏..谢谢

4

1 回答 1

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

}

希望这可以帮助

于 2013-03-23T17:26:11.700 回答