当前位置: 首页 > 知识库问答 >
问题:

为什么不能使用列表添加空值。关于()?

朱修德
2023-03-14

这是我的代码

import java.util.List;

public class NewMain1 {

    public static void main(String[] args) {
        System.out.println(List.of(null, 32));
    }
    
}

这就是结果:

Exception in thread "main" java.lang.NullPointerException
    at java.base/java.util.Objects.requireNonNull(Objects.java:208)
    at java.base/java.util.ImmutableCollections$List12.<init>(ImmutableCollections.java:563)
    at java.base/java.util.List.of(List.java:829)

有人能解释为什么null不能使用List.of()作为列表项添加吗?

共有1个答案

董同
2023-03-14

请找到您要调用的方法的内部实现。如果您查看开关语句,它会调用long属性,因为这是null,所以它会抛出一个NullPointerExctive

 static <E> List<E> of(E... elements) {
        switch (elements.length) { // implicit null check of elements
            case 0:
                @SuppressWarnings("unchecked")
                var list = (List<E>) ImmutableCollections.EMPTY_LIST;
                return list;
            case 1:
                return new ImmutableCollections.List12<>(elements[0]);
            case 2:
                return new ImmutableCollections.List12<>(elements[0], elements[1]);
            default:
                return new ImmutableCollections.ListN<>(elements);
        }
    }
 类似资料:
  • 问题内容: 我正在尝试弄清楚如何在Python中使用MySQLdb库(我对这两个都是最好的新手)。 我在这里遵循代码,特别是: 我可以更改此代码以创建或删除表,但实际上无法提交它。它按预期返回值(即使更改表中的值,它也会更改为我期望的值)。 每次我使用PHPMyAdmin查看数据库时,都不会进行插入。如何将提交到数据库? 问题答案: 您会忘记数据更改,默认情况下自动提交是禁用的: 用Python

  • 问题内容: 我的密码 我的问题,为什么? 用更严肃的语气:我想要一个答案或参考,详细说明使用加星标表达的所有来龙去脉,因为有时我会对它的行为感到惊讶… 附录 为了反映紧随我的问题之后的一些启发性评论,我添加了以下代码 (在发布原始问题之前,我已经尝试过该部分,但是由于错误与主演无关,因此我将其省略了。) 在python≥3.5中有一种语法“可以正常工作”,但是尽管如此,我还是希望了解一下。 问题答

  • 问题内容: 我创建了一个包含三列Id,Name,Quantity的表。看来,当我尝试插入至少包含一个空列的行或试图将列的默认值设置为NULL时,数据库会引发错误。 #1048-列“数量”不能为空 如何将NULL设置为列的有效值? 问题答案: 用您的实际数据类型替换,但没有限制。 要显示当前的列定义,请运行 在(命令行客户端)

  • 我正在尝试将ArrayList添加到Jlist,但我给出的唯一理解方法是编写如下代码: 让我困惑的是,为什么我不能像这样直接把数组列表添加到Jlist中: 先谢谢你。

  • 问题内容: 据我了解,a 是定义为 一些特定但未知类型 的 列表 。因此,无论此参数的类型是什么,都应该对其进行扩展,因为在Java中,不能有任何不扩展的类型。那么为什么下面的代码没有被编译呢?它如何违反了不变式 问题答案: 可以指向可以存储不同类型对象的任何类型的列表。 您如何看待,例如,让它添加任何对象是否安全?

  • 错误: 代码: 自<代码>列表