我想确定我得到的对象是否是字符串列表。 这是我的代码:
Object obj = plugin.getConfig().get("groups");
if(obj instanceof List<?>){ // Is the Object a List ?
List<?> list = (List<?>) obj;
if(list.get(0) instanceof String){ // Does the List contain Strings ?
List<String> groupList = (List<String>) list;
}
}
但是Eclipse说第5行的最后一次投射是不安全的:
类型安全:从列表&lt; capture#3-of?&gt;中取消选中。列出&lt; String&gt;
我该如何解决?我也试过了
List<String> groupList = (List<String>) obj;
...但我仍然得到同样的错误(基本上)。
答案 0 :(得分:-1)
底线是,如果你想对整个列表进行强制转换,你不能阻止这个警告,你只能用注释来压制它。
请参阅此答案以获得解释(它是关于地图而不是列表,但适用相同的原则):How do I address unchecked cast warnings?
如果您希望代码没有不安全的强制转换而没有注释,您可以采用上述问题的接受答案中的方法:不要自己强制转换列表,而是遍历List<?>
并投射每个人{ {1}}至Object
。