在Java的for-each循环init中抑制警告?

时间:2015-12-04 18:29:11

标签: java generics casting

在Java中,如何在循环变量和循环变量之间抑制未经检查的强制转换警告?如,

// Actually a List<List<Integer>>
List<List> iterable = thirdPartyApiCallICantChange();
for(List<Integer> item : iterable) { ... }

Java编译器抱怨在“iterable”变量的开头有一个未经检查的强制转换,但我无法弄清楚如何抑制它。

我已尝试执行@SuppressWarnings("unchecked") List<Integer> item,但报告了同一位置的相同错误。

我已尝试将iterable投射到List<List<Integer>>,但我无法弄清楚如何;编译器似乎没有接受正常的(List<List<Integer>>) iterable

1 个答案:

答案 0 :(得分:1)

分配到iterable时投弃,如:

@SuppressWarnings({ "unchecked", "rawtypes" })
List<List<Integer>> iterable = (List)thirdPartyApiCallICantChange();

现在for循环没有任何警告。