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

标签 java generics casting

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

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

Java 编译器提示在“可迭代”变量的开头发生了未经检查的转换,但我不知道如何抑制它。

我尝试过 @SuppressWarnings("unchecked") List<Integer> item ,但是在同一个地方报了同样的错误。

我尝试过转换 iterableList<List<Integer>> ,但我不知道该怎么做;正常(List<List<Integer>>) iterable编译器似乎不接受。

最佳答案

分配给iterable时进行强制转换,如下所示:

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

现在 for 循环不会有任何警告。

关于java - Java 的 for-each 循环 init 中抑制警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095081/

相关文章:

java - 在 IntelliJ 中导入 Java 项目 (gradle) 的问题

Java 泛型 : Subclassing a generic superclass - is subclass a reifiable type?

c# - 何时使用泛型和类型检查?

java - 我是否需要发布到 Play 商店才能转换到 chromecast?

c++ - 在字符串中包含 int 变量的值

java - 如何使用 CharSet 对 CharSequence 进行编码(不转换为字符串)

java - 如何使用房间库?

java - 如何在 ant <javac> JDK8 中提及 -profile

java - 使用 Java 泛型确保接收到的参数与类或其子类型相同

C++ 转换为同一个类