Как бы я назначил значения объекту при создании, который принимает значения String и ArrayList в качестве параметров? - PullRequest
2 голосов
/ 04 апреля 2019

Я загружаю начальный набор данных в базу данных с помощью SpringLine CommandRunner. При создании нового объекта объекту требуется несколько значений String, а затем значение ArrayList. Есть ли способ инициализировать значения для значений String и ArrayList в новом объявлении объекта?

Я могу успешно создать объект, передав ноль для ArrayList, но я пытаюсь добавить строковые литералы в объявлении.

//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 подобно тому, как передаются литералы String.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Вы можете использовать Arrays.asList("val1", "val2",...)

0 голосов
/ 04 апреля 2019

Возможно, вы захотите использовать

Collections.emptyList();

или

Collections.singletonList(value);

или, если у вас несколько значений

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

или с последними версиями Java (JDK11 и выше)

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

Используя все эти методы, вы должны знать, что возвращаемый List является неизменным.Добавление или удаление элементов в List приведет к UnsupportedOperationException.Если вы хотите изменить List, вы можете просто использовать конструктор ArrayList(Collection).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...