java - 我如何将值分配给创建时将 String 和 ArrayList 值作为参数的对象?

标签 java spring spring-mvc

我正在使用 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/

相关文章:

validation - JSR 303 中的 GroupSequence 和有序评估

java - 我的 .jar 文件不会执行任何操作

java - 标记为@NotNull 的最终字段未初始化

hibernate - 在 JPA 和 Spring 中可以动态创建持久性单元吗?

java - 如何在 Spring MVC 中向拦截器注入(inject)属性

java - 频繁刷新页面信息

java - 使用 Spring 在后台运行进程的推荐方法是什么?

spring-mvc - 如何使用 Feign 客户端设置请求头?

java - ClassCastException : org. hibernate.hql.internal.ast.tree.SqlNode 无法转换为 org.hibernate.hql.internal.ast.tree.PathNode

Java webservlet API : HTTP 400 error - bad request