我有一个条件,即返回字符串列表List<String>
.
我在方法中有以下内容
return criteria.list();
但是代码显示
Type safety: Unchecked cast from List to List<String>
避免添加@SuppressWarnings("unchecked")
为了确保类型被安全地转换(不确定我是否真的应该这样做),我阅读了这个问题并尝试将解决方案添加到我的代码中
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
- 我不知道我是否真的应该使用Collections.checkedList
- 如果我应该使用它,那么如何使用它?
谢谢
我不知道我是否真的应该使用 Collections.checkedList
在标准实现中确实没有必要,它的目的如果主要用于调试,或者如果您收到一个您不确定的列表并且需要确保它是类型安全的(通常是因为第三方代码)或泛型已被使用,您需要确保代码在这一点上是正确的,因为它会在这里抛出异常并确定哪些类型不正确。
•如果我应该使用它,那么如何使用它?
如果要实现Collections.checkedList
则两个参数是非类型安全的列表和需要列表的类,在本例中String.class
不List<String>
return Collections.checkedList(criteria.list(), String.class);
如果该方法criteria.list()
返回一个List<String>
,那么正确的语句将是
return Collections.checkedList(criteria.list(), String.class);
类似的情况适用于任何其他对象,例如,如果该方法返回类型为 Criterion
的自定义对象,答案将是
return Collections.checkedList(criteria.list(), Criterion.class);