【发布时间】:2018-01-12 19:42:09
【问题描述】:
我正在努力处理包含一些 Stream API 方法的评估表达式。 示例:
sample.reads.stream().filter(s -> s.l.length() < 10)
这也不行:
sample.reads.stream().filter(s -> s.l.length() < 10).collect(Collectors.toList())
给予:
但是,sample.reads.stream().count() 或 sample.reads.stream().toArray() 与任何其他表达式一样工作正常(如果我将流 API 调用放入代码中,它也工作正常)
配置: 爪哇: jdk1.8.0_144
想法: IntelliJ IDEA 2017.3.1(社区版) Build #IC-173.3942.27,建于 2017 年 12 月 11 日 JRE:1.8.0_152-release-1024-b8 amd64 JVM:JetBrains s.r.o 的 OpenJDK 64 位服务器 VM 视窗 10 10.0
更新
抱歉,造成混淆。甚至终端命令也不起作用。我展示了这个例子,因为我发现这个例子是在过滤方法上抛出的,而不是在收集上。如果我添加 .collect() 我会看到同样的错误
更新 2 我认为这与课程无关。即使这给了我同样的错误:
IntStream.range(0, 100).filter(i -> i%2 == 0).toArray()
【问题讨论】:
-
你应该给出样本的类型,以及 sample.reads 的单个元素的类型,通过错误可以清楚地看出你错过了类路径中的一些依赖项
-
@Hamdi Douss 他们是我的所有课程,位于“edu.gsu.molel”包中。我认为这不是问题,因为 'sample.reads.stream().toArray()' 工作正常
-
请包含您尝试评估 lambda 的对象架构
-
他们是在同一个项目还是在不同的项目?
-
这对我来说似乎工作得很好。我注意到,如果我尝试在正在运行的应用程序中调试没有导入了正确的类的东西,它会因为类似的错误而失败,但我通常可以选择在调试窗口中“导入”它。您是否看到任何错误提示您无权访问
Collectors类?
标签: java debugging intellij-idea