如何在创建时将值赋给对象,该对象将String和ArrayList值作为参数?

时间:2019-04-04 17:31:03

标签: java spring spring-mvc

我正在使用Spring的CommandLineRunner将初始数据集加载到数据库中。创建新对象时,该对象需要一些String值,然后是ArrayList值。有没有办法在新对象声明中初始化String值和ArrayList值的值?

我可以通过为ArrayList传入null来成功创建对象,但是我想做的是在声明中添加String文字。

//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,类似于传递字符串常量的方式。

2 个答案:

答案 0 :(得分:0)

您可能想使用

Collections.emptyList();

Collections.singletonList(value);

或者,如果您有多个值

Arrays.asList(„value1“, „value2”, ...);

或与Java的最新版本(JDK11及更高版本)

List.of(„value1“, „value2“, ...);

使用所有这些方法时,您需要知道返回的List是不可变的。在List中添加或删除元素将导致UnsupportedOperationException。如果您想要可修改的List,则可以简单地使用ArrayList(Collection)构造函数。

答案 1 :(得分:0)

您可以使用Arrays.asList("val1", "val2",...)