我正在使用 Spring 的 CommandLineRunner 将初始数据集加载到数据库中。创建新对象时,该对象需要一些 String 值,然后是 ArrayList 值。有没有办法在新对象声明中同时初始化 String 值和 ArrayList 值?
我可以通过为 ArrayList 传递 null 来成功创建对象,但我想做的是在声明中添加字符串文字。
//declared constructor in the Person class.
public Person(String name, String address, ArrayList<String> values){}
//implemented method from CommandLineRunner within the DatabaseLoader class.
@Override
public void run(String... args) throw Exception {
this.repo.save(new Person("Joe", "123 Main St", **null**));
为了让代码成功运行,将 null 分配给 ArrayList 是可行的,但我想做的是声明 ArrayList 类似于传递字符串文字的方式。
最佳答案
你可能想用
Collections.emptyList();
或
Collections.singletonList(value);
或者,如果您有多个值
Arrays.asList(„value1“, „value2”, ...);
或使用最新版本的 Java(JDK11 及更高版本)
List.of(„value1“, „value2“, ...);
对于所有这些方法,您需要知道返回的 List
是不可变的。向 List
添加或删除元素将导致 UnsupportedOperationException
。如果您想要一个可修改的 List
,您可以简单地使用 ArrayList(Collection)
构造函数。
关于java - 我如何将值分配给创建时将 String 和 ArrayList 值作为参数的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55521856/