我正在使用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,类似于传递字符串常量的方式。
答案 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",...)