Добавление элемента в листинг

Рейтинг: -1Ответов: 1Опубликовано: 29.04.2023

Есть такой класс

class Info {
String one, two, three;}

И есть динамический листинг

private ArrayList <Info> info = new ArrayList <Info> ();

И сейчас, чтобы добавить новый элемент массива я использую метод дилетанта

public void onClick (View v) {
    int i = info.size ();

    info.add (new Info ());
    info.get (i).one = "one";
    info.get (i).two = "two";
    info.get (i).three = "three";
}

И я хотел узнать, как в java немного видоизменить этот код? Когда я работал с C#, на сколько я помню, такая операция делалась подобным образом

public void onClick (View v) {
    info.add (new Info () {
        one = "one";
        two = "two";
        three = "three";
    });
}

Ответы

▲ 0Принят

На java у вас есть несколько вариантов.

  1. Без изменения класса Info:
public void onClick (View v) {
    Info i = new Info();
    i.one = "one";
    i.two = "two";
    i.three = "three";
    info.add(i);
}
  1. в том же стиле, только с сеттерами.
  2. Добавляем конструктор:
class Info {
    String one, two, three;

    Info(String one, String two, String three) {
        this.one = one;
        this.two = two;
        this.three = three;
    }
}

И добавление в коллекцию будет наиболее лаконичным

public void onClick (View v) {
    info.add(new Info("one", "two", "three"));
}