下面两行:
Boolean visitedAlphabet[] = new Boolean[26];
Arrays.stream(visitedAlphabet).anyMatch(e -> e != true);
Run Code Online (Sandbox Code Playgroud)
产生一个空指针,具体是第二行:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because "<parameter1>" is null
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么会发生这种情况吗?
编辑 - 添加约翰·博林格的优秀评论片段 -
因为e是 null 并且运行时正在尝试将其“拆箱”为原始boolean。
您可以执行(e != null && e != true)或!Boolean.TRUE.equals(e)或 初始化您的数组:
初始化一个数组:
装箱和拆箱:
https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |