通常,当我在 IntelliJ(版本 2019.1.3 社区版)中键入 Java 8 流代码并使用自动完成功能时,IntelliJ 在结果代码中生成冗余转换。
一个人工的最小示例如下所示:
类型:
List<? extends List<? extends Future<?>>> list = new ArrayList<>();
list.stream().map(l -> l.stream().map(f -> f.isD
将光标置于大写
D
之后的 f.isD
. IntelliJ 现在建议我完成 f.isD
至 f.isDone()
.当我接受这一点并按回车时,会生成以下内容:list.stream().map(l -> l.stream().map(f -> ((Future) f).isDone()));
IntelliJ为什么要投
f
至 Future
?这是多余的,它立即被 IntelliJ 检测到,它现在提示(即警告)关于多余的 Actor 。我在网上搜索了一些设置以关闭它或以某种方式更正此自动完成,但找不到任何解决方案。请帮忙,这让我发疯!
最佳答案
事实证明,这是 IntelliJ 中的一个错误,已在最新版本 ( https://youtrack.jetbrains.com/issue/IDEA-221376 ) 中修复。
关于java - 如何防止 IntelliJ 在 Java 8 流表达式中生成冗余强制转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788411/