这是IntelliJ(16,144.3357.4)软件中的一个错误,我想知道如何在等待修复时暂时绕过它。出于向后兼容性原因,我正在构建一个使用retrolambda和annimon流API的跨平台应用。但是,如果我切换到Java 1.8+并删除这些包,就会产生这个错误。
我不能再使用Stream.of (...一些Iterable ......)而不会收到很多此类错误错误:
Both:
List<? extends T> in Stream and
Iterable<? extends T> in Stream match
我可以确认我只是导入了annimon Stream类 - 没有来自Java API的混合导入,当我切换到Java 1.8+时也是如此。如果我通过字节码反编译进入源代码,我确实看到了具有(可能)相同擦除的方法:
public static <T> Stream<T> of(final List<? extends T> list)
public static <T> Stream<T> of(Iterable<? extends T> iterable)
转换我的对象可以解决错误,但会导致无法解析的代码和对Stream.of
的冗长调用。我还应该注意到自最新版本以来这只是一个问题。显然,问题是List也实现了Iterable,所以它无法决定我想要的方法。
有没有办法在没有类型转换的情况下解决或抑制这些错误?
我意识到我可以降级到早期版本,但我想知道是否有更简单的修复。
答案 0 :(得分:0)
今天早上推出的更新已解决此问题:
IntelliJ IDEA(社区版)IC-144.3600.7
构建#IC-144.3600,建于2016年2月2日
答案 1 :(得分:0)
如果错误仅显示在编辑器中,而不是在生成项目时在消息工具窗口中显示,则可以忽略它,您的项目仍将构建并运行。