【发布时间】:2017-12-30 22:00:27
【问题描述】:
我正在使用 Java 8 的 Stream 功能在我的程序中操作数组的内容:
Obstacle[] closestObstacles = Stream.generate(() -> new Obstacle()).limit(8).toArray(Obstacle[]::new); // one for each line of attack
当我尝试像这样导入Stream 时:import java.util.*; 我收到“无法解析符号流”错误。当我像这样导入Stream 时:java.util.stream; 事情按预期工作。为什么会这样?我没有在程序的其他地方使用Stream 或任何名为“stream”的东西,所以我认为这不是名称冲突吗?
【问题讨论】:
-
我怀疑第二次尝试是否有效。也许你
import java.util.stream.*;?如果使用通配符导入,则只会导入此包中的直接类,而不是子包中的类。因此,使用import java.util.*,您可以导入列出here 的所有类和接口。Stream类实际上驻留在java.util.list.streampackage 中。 -
确实 - 导入
java.util.stream.*将导入java.util.stream包中的所有内容。导入java.util.stream将失败:error: cannot find symbol -
您可能在某处导入了其他一些
Stream类(或者您的包中有一个Stream类),否则import java.util.*;会完美运行