java - 如何防止 IntelliJ 在 Java 8 流表达式中生成冗余强制转换?

标签 java intellij-idea java-stream

通常,当我在 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.isDf.isDone() .当我接受这一点并按回车时,会生成以下内容:
list.stream().map(l -> l.stream().map(f -> ((Future) f).isDone()));

IntelliJ为什么要投fFuture ?这是多余的,它立即被 IntelliJ 检测到,它现在提示(即警告)关于多余的 Actor 。

我在网上搜索了一些设置以关闭它或以某种方式更正此自动完成,但找不到任何解决方案。请帮忙,这让我发疯!

最佳答案

事实证明,这是 IntelliJ 中的一个错误,已在最新版本 ( https://youtrack.jetbrains.com/issue/IDEA-221376 ) 中修复。

关于java - 如何防止 IntelliJ 在 Java 8 流表达式中生成冗余强制转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788411/

相关文章:

java - JTable - 选定行点击事件

java - 在一种方法中设置变量的值并在另一种方法中打印

c# - MATLAB 与 Visual C++ 进行图像处理

java - DelegatingFilterProxy 无法分配给 IntelliJ 启动项目中的 javax.servlet.Filter 错误

maven - 智能 : Adding a Tomcat Plugin in Maven menu

java - jmock - 模拟以 long[] 作为输入和 with(any()) 的方法

java - IntelliJ 运行/调试配置中的变量

java - 计算函数的总和

Java 8 - 就地映射数组/集合

Java 8 Lambda - 分组和减少对象