1
votes

Java: ajoutez le nom de chaque instance d'objet à la liste

Comme le titre l'indique, je veux enregistrer chaque nouvel objet créé du nom de la personne dans une liste:

Ceci est mon code jusqu'à présent

Person Guy = new Person("NameOfGuy"); then list must be [NameOfGuy].

à chaque fois que je suis créer un objet personne, il est ajouté en tant que point «nul» dans la liste (lorsque j'utilise println).

comment je le change en nom du nouvel objet Person comme

package javaapplication4;
import java.util.*;

public class Person {
private String namePerson;  
static List personList = new ArrayList();

{ 
    personList.add(getPersonName());
} 

public Person(String namePerson){
       this.namePerson = namePerson;
}

public void setPersonName(String namePerson){
    this.namePerson = namePerson;
}

 public String getPersonName(){
    return namePerson;
}

public void setPersonList(List personList){
      this.personList= personList;
}

  public static List getPersonList(){
      return personList;
  }


2 commentaires

J'allais là où était User7, mais ce n'était pas aussi rapide. Est-il nécessaire que lorsqu'un objet Person particulier sort de la portée, nous supprimions le nom de la personne de la PersonList? SI oui, il y a un peu plus de travail à faire, je pense.


Et faites attention aux avertissements du compilateur que vous recevez.


3 Réponses :


3
votes
List<String> personList = new ArrayList<>();

0 commentaires

1
votes

Comme indiqué par @ user7, vous ajoutez le nom dans la liste au mauvais endroit. Ce que vous devriez faire, c'est ajouter le nom de la personne dans la liste pendant que vous créez l'objet de la personne, c'est-à-dire à l'intérieur de votre constructeur. Remplacez votre constructeur par ceci:

public Person(String namePerson){
  this.namePerson = namePerson;
  personList.add(namePerson);
}


0 commentaires

0
votes

Vous pouvez effectuer le travail en faisant ci-dessous les modifications apportées à la classe Personne :

import java.util.*;

public class Person {
private String namePerson;
static List<String> personList = new ArrayList<>();

public Person(String namePerson) {
    this.namePerson = namePerson;
    personList.add(this.namePerson);
}

public void setPersonName(String namePerson) {
    this.namePerson = namePerson;
}

public String getPersonName() {
    return namePerson;
}

public void setPersonList(List personList) {
    this.personList = personList;
}

public static List getPersonList() {
    return personList;
}
}


0 commentaires