我的条件是返回字符串列表List<String>
。
我在方法中有以下内容
return criteria.list();
但代码显示
Type safety: Unchecked cast from List to List<String>
避免添加@SuppressWarnings("unchecked")
并确保类型被安全转换(不确定我是否真的应该这样做),我读了this question并尝试将解决方案添加到我的代码中
return Collections.checkedList(criteria.list(),List<String>);
但它显示另一个错误如下:
Multiple markers at this line
- Type safety: Unchecked cast from List to List<String>
- Syntax error on token ">", Expression expected after this
token
由于
答案 0 :(得分:1)
如果方法criteria.list()
返回List<String>
,那么正确的语句将是
return Collections.checkedList(criteria.list(), String.class);
类似的情况适用于任何其他对象,例如如果方法返回类型为Criterion
的自定义对象,则答案为
return Collections.checkedList(criteria.list(), Criterion.class);
答案 1 :(得分:1)
•我不知道我是否真的应该使用Collections.checkedList
实际上没有必要在标准实现中,其目的主要是用于调试,或者如果您收到的列表是您不确定的并且需要确保它是类型安全的(通常是因为第三方代码)或泛型有已经使用过,你需要确保代码在这一点上是正确的,因为它会在这里引发异常,并确定什么是不正确的类型。
•如果我应该使用它,那么如何使用它?
如果您要实现Collections.checkedList
,则两个参数是非类型安全的列表以及您希望列出的类,在这种情况下String.class
不是List<String>
return Collections.checkedList(criteria.list(), String.class);