检测Object是否为List <string>

时间:2016-10-01 13:21:44

标签: java list

我想确定我得到的对象是否是字符串列表。 这是我的代码:

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;

...但我仍然得到同样的错误(基本上)。

1 个答案:

答案 0 :(得分:-1)

底线是,如果你想对整个列表进行强制转换,你不能阻止这个警告,你只能用注释来压制它。

请参阅此答案以获得解释(它是关于地图而不是列表,但适用相同的原则):How do I address unchecked cast warnings?

如果您希望代码没有不安全的强制转换而没有注释,您可以采用上述问题的接受答案中的方法:不要自己强制转换列表,而是遍历List<?>并投射每个人{ {1}}至Object