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?它将在哪里结束?