java - "References to generic type JsonResponse should be parameterized"

标签 java generics servlets

我有一个用于处理 Ajax 请求的 Servlet,它以 JSON 格式给出响应。

我在网上收到此警告,如下评论。类型安全:方法 setResponseData(Object) 属于原始类型 JsonResponse。对泛型类型 JsonResponse 的引用应该参数化

我应该以另一种方式执行此操作,或者添加 SuppressWarning 注释是否安全

public class JsonResponse<T>
{
    private T responseData;
    private boolean success;
    private String errorMessage;
    // + Getters and Setters
}

public class AjaxJson extends HttpServlet
{
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    {
        String function = request.getParameter("func");
        if (function == null)
            function = "";

        JsonResponse<?> jsonResponse;

        if (function.equals("getUsers"))
            getUsers(jsonResponse);
    }

    private void getUsers(JsonResponse jsonResponse)
    {
        jsonResponse = new JsonResponse<List<User>>();

        // Lets say I have a class called User
        List<User> users = new ArrayList<Users>();
        // get users and add to list

        jsonResponse.setResponseData(users); // Warning on this line
        jsonResponse.setSuccess(true);
    }
}

最佳答案

您正在使用 JsonResponse 作为泛型

private void getUsers(JsonResponse jsonResponse)

修改为

private void getUsers(JsonResponse<List<User>> jsonResponse)

Java 总是警告有关使用泛型的信息,有关详细信息,请参阅 this关于SO的问题。

关于java - "References to generic type JsonResponse should be parameterized",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23102945/

相关文章:

java - SAXParserFactory 安全处理功能在 jboss 服务器中不起作用

java - 我的第一个 Tomcat Servlet

java - Eclipse IDE Hello World Cheat Sheet 似乎有一个错误

java - jaxb2 maven 插件,在单独的标签中定义多个模式文件

java - 创建一个线程来发送并等待响应(websockets)

scala - 检查 Scala 类是否是 T 的实例

java - 获取 "Whitelabel Error Page"运行执行器健康状况和映射 url

c# - 更改/修改现有 keyValuePair 中的数据

vb.net - 在通用列表中搜索对象

java - Glassfish:一个或多个Web片段以冲突的方式定义同一个Servlet,并且该Servlet未在web.xml中定义