Add objects to List of Long

问题描述 投票:0回答:2

我想将一个长对象添加到一个长列表中,但是我得到了一些我不明白的错误

我有以下最小示例:

package main;

import java.util.List;

public class Test {

    public static void main(String[] args) {
        
        List<Long> LongList = List.of((long) 3);
        LongList.add((long) 2);
    }

}

错误消息是:

线程“main”中的异常 java.lang.UnsupportedOperationException 在 java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142) 在 java.base/java.util.ImmutableCollections$AbstractImmutableCollection.add(ImmutableCollections.java:147) 在 main.Test.main(Test.java:10)

我需要长格式,我试图改变我转换为长格式的方式。另外,我试图给出明确添加的位置,但没有任何改变。

java list long-integer
2个回答
4
投票

来自List::of

docs.oracle.com
文档:

返回包含一个元素的不可修改的列表。有关详细信息,请参阅不可修改的列表

这就是为什么调用

add(...)
会导致
UnsupportedOperationException
。如果我们想修改创建的列表,我们将不得不创建一个可修改的列表,例如:

List<Long> LongList = new ArrayList<>(List.of((long) 3));
LongList.add((long) 2);

Ideone 演示

或:

List<Long> LongList = new ArrayList<>();
LongList.add((long) 3);
LongList.add((long) 2);

Ideone 演示


关于代码的一些说明:

  • 变量名应该写成
    lowerCamelCase
    ,而不是
    UpperCamelCase
    (
    LongList
    ->
    longList
    )
  • 我们可以使用
    2
    -文字
    3
    long
    ,而不是将文字 
    long
    2L
     转换为 
    3L

0
投票

您已经使用 List.of() 方法初始化了列表变量。这就是为什么你的列表是不可变的。不能向其中添加任何项目。这也可以在错误消息中看到。

请使用 ArrayList 的新实例初始化变量。然后你就可以开始添加项目了。

List<Long> longList = new ArrayList<>():
longList.add(3L);
longList.add(2L);
© www.soinside.com 2019 - 2024. All rights reserved.