Как вывести только определенное значение в созданном объекте другого в ArrayList java
Дано:
ArrayList<String> client1 = new ArrayList<>();
client1.add(String.valueOf(new Client("Анна", "Веревочкина", 22)));
Метод toString переопределен в классе Client и выводит всю инфу о Анне. Необходимо вывести только имя. Подскажите пожалуйста как я могу это сделать?
P.s. Действия происходят в разных классах Т.е. список создан в одном классе, Client - другой класс.
Ответы (2 шт):
Автор решения: Yaroslav
→ Ссылка
Итого: Необходимо вызывать именно Client
ArrayList<Client> clients1 = new ArrayList<>();
clients1.add(new Client("Анна", "Веревочкина", 22));
И затем все просто:
System.out.println(clients1.get(0).getName());
Спасибо за помощь в комментариях
Автор решения: e1st0rm
→ Ссылка
Что бы сохранить в список строк только имя, воспользуйтесь геттером, вот пример:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
List<String> client1 = new ArrayList<>();
client1.add(new Client("Анна", "Верёвочкина", 22).getFirstName());
// Хотя возможно лучше было бы в список сохранять не имена,
// а объекты Client
List<Client> clients = new ArrayList<>();
clients.add(new Client("Анна", "Верёвочкина", 22));
clients.add(new Client("Катя", "Брусникина", 25));
// После чего, что-то делать со списком, в данном случае,
// выводим в STDOUT имена
clients.stream().forEach(c -> System.out.println(c.getFirstName()));
}
}
class Client {
private String firstName;
private String lastName;
private int age;
// конструктор
public Client(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// Переопределяем toString()
@Override
public String toString() {
return "Client [firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + "]";
}
}
И ещё! Метод toString() ничего не должен выводить, он должен возвращать строковое представление объекта.