我正在使用 Java 8 的Stream功能来操作程序中数组的内容:
Obstacle[] closestObstacles = Stream.generate(() -> new Obstacle()).limit(8).toArray(Obstacle[]::new); // one for each line of attack
Run Code Online (Sandbox Code Playgroud)
当我尝试这样导入时Stream:import java.util.*;出现“无法解析符号流”错误。当我Stream像这样导入时:java.util.stream;事情按预期工作。为什么会发生这种情况?我没有Stream在程序的其他地方使用或任何名为“stream”的东西,所以我认为这不是名称冲突?
我怀疑第二次尝试 ( import java.util.stream;) 是否有效。作为JonSkeet指出,在他们的评论,它应该导致编译错误:error: cannot find symbol。也许你想import java.util.stream.*;?
对于实际问题:
如果我们用通配符导入,也就是星号( *) 字符,只会导入这个包中的直接类,而不导入子包中的类。因此,使用 an import java.util.*,我们导入了ArrayList,LinkedList和等类Random。可以在此处找到完整列表。该类Stream实际上驻留在子包中,java.util.stream并且在您import java.util.*;.
要导入Stream,我们可以import java.util.stream.*;(此包中的所有类)或仅import java.util.stream.Stream;(我们需要的类的 FQDN)。
| 归档时间: |
|
| 查看次数: |
13652 次 |
| 最近记录: |