Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何摆脱@SuppressWarnings标签?_Java_Json_Dictionary_Casting_Gson - Fatal编程技术网

Java 如何摆脱@SuppressWarnings标签?

Java 如何摆脱@SuppressWarnings标签?,java,json,dictionary,casting,gson,Java,Json,Dictionary,Casting,Gson,我正在尝试拆分字符串并将内容加载到地图中,如下所示: @SuppressWarnings("unchecked") Map<String, List<String>> holder = gson.fromJson(response.split("server=")[1], Map.class); for (Map.Entry<String, List<String>> entry : holder.entrySet()) {

我正在尝试拆分字符串并将内容加载到地图中,如下所示:

@SuppressWarnings("unchecked")
Map<String, List<String>> holder = gson.fromJson(response.split("server=")[1],
        Map.class);
for (Map.Entry<String, List<String>> entry : holder.entrySet()) {
    for (String hosts : entry.getValue()) {
        serverList.add(hosts);
    }
}
server={"ABC":["PQR"],"DEF":["HELLO"],"TYU":[]}
现在您可以看到,我正在使用
@SuppressWarnings(“unchecked”)
删除Eclipse生成的警告。这是我收到的一条警告信息:

Type safety: The expression of type Map needs unchecked conversion to conform to Map<String,List<String>>
类型安全性:类型映射的表达式需要未选中的转换才能符合映射

现在我的问题是-除了添加
SuppressWarnings
标记之外,还有其他方法删除此警告消息吗?

您可以使用
TypeToken

final Type type = new TypeToken<Map<String, List<String>>>() {}.getType();
final Map<String, List<String>> holder = gson.fromJson(response.split("server=")[1], type);
final-Type-Type=new-TypeToken(){}.getType();
final Map holder=gson.fromJson(response.split(“server=”)[1],type);

阅读以了解
TypeToken
的工作原理

Nope,否则该方法必须返回具有正确模板值的特定映射,而不是通用映射。这背后的原因是,您知道映射实际上是未经检查的,因此您不能责怪Java在另一个注释中的“怪异”,为什么要将其删除?让我们直截了当地说,您想取消@suppress?它将在哪里结束?