Foros del Web » Programación para mayores de 30 ;) » Java »

Como rellenar un ArrayList que es atributo de una clase

Estas en el tema de Como rellenar un ArrayList que es atributo de una clase en el foro de Java en Foros del Web. Buenas. Estoy practicando java elemental y ArrayList, y tengo el siguiente código. Es una clase que modela lo qu quiere ser un evento, con atributos ...
  #1 (permalink)  
Antiguo 11/12/2015, 10:29
 
Fecha de Ingreso: octubre-2012
Mensajes: 38
Antigüedad: 12 años, 1 mes
Puntos: 0
Como rellenar un ArrayList que es atributo de una clase

Buenas. Estoy practicando java elemental y ArrayList, y tengo el siguiente código.

Es una clase que modela lo qu quiere ser un evento, con atributos fecha de inicio y fin, etc, y un arraylist donde guardar los patrocinadores.


Código PHP:
    public Evento() {
        
        
super();
        
ArrayList<Stringpatrocinadores = new ArrayList<String>();

        
this.fechaInicio null;
        
this.fechaFin null;
        
this.nombreEvento "Evento sin nombrar";
        
this.descripción "Evento sin describir";
        
this.ciudad "Evento sin ubicar";
        
String sinpatrocinador "Sin patrocinador";
        
patrocinadores.add(sinpatrocinador);
                
    } 
Esto es el constructor para cuand se invoca a "Evento()", que se cree como default así si no recibe parámetros, pero mi duda es con el Arraylist, que luego a la hora de pintarlo me lo muestra como NULL, no ha tomado valor.

¿Que es lo que hago mal? He probado de varias formas, como pasandole directamente el string sin meterlo en una variable antes, pero estoy siempre en las mismas. Se supone que esta sintaxis funciona y en otros momento con .add he insertado registros, ¿por donde anda mi error?

Luego para probar hago

Código PHP:
    public static void main(String[] args) {

        
Evento miEvento = new Evento();
        
System.out.println(miEvento.patrocinadores); 

    } 
...y lo que me pinta es NULL. El pintado creo que es correcto, vd me dirán, yo hasta donde veo es un problema de cargarlo, y no veo por donde cogerlo. Gracias.
  #2 (permalink)  
Antiguo 11/12/2015, 11:14
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Como rellenar un ArrayList que es atributo de una clase

Hola:

Tal cual tienes el primer trozo de código, patrocinadoes es una variable local dentro del constructor, en cuanto termina el constructor desaparece. El segundo trozo de código no debería ni siquiera compilar, ya que miEvento.patrocinadores no existe.

Si te compila, y por el error que dices que da, seguramente, además de lo que tienes en el primer trozo de código tienes un atributo patrocinadoes

Código Java:
Ver original
  1. public class Evento {
  2. public ArrayList<String> patrocinadores;
  3. public Evento() {
  4.          
  5.         super();
  6.         ArrayList<String> patrocinadores = new ArrayList<String>();
  7.  
  8.         this.fechaInicio = null;
  9.         this.fechaFin = null;
  10.         this.nombreEvento = "Evento sin nombrar";
  11.         this.descripción = "Evento sin describir";
  12.         this.ciudad = "Evento sin ubicar";
  13.         String sinpatrocinador = "Sin patrocinador";
  14.         patrocinadores.add(sinpatrocinador);
  15.                  
  16.     }  
  17. }

Si es así, tienes declaradas DOS variables patrocinadores, la primera como atributo de la clase, a null y que nunca rellenas, la segunda declarada dentro del constructor, que rellenas y se pierde en cuanto sales del constructor. Dentro del constructor tienes que quitar la declaración, para así usar la que es atributo.

Código Java:
Ver original
  1. public class Evento {
  2. public ArrayList<String> patrocinadores;
  3. public Evento() {
  4.          
  5.         super();
  6.  
  7.          // En vez de esto
  8.         // ArrayList<String> patrocinadores = new ArrayList<String>();
  9.  
  10.          // pon esto
  11.          patrocinadores = new ArrayList<String>();
  12.  
  13.         this.fechaInicio = null;
  14.         this.fechaFin = null;
  15.         this.nombreEvento = "Evento sin nombrar";
  16.         this.descripción = "Evento sin describir";
  17.         this.ciudad = "Evento sin ubicar";
  18.         String sinpatrocinador = "Sin patrocinador";
  19.         patrocinadores.add(sinpatrocinador);
  20.                  
  21.     }  
  22. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 12/12/2015, 02:42
 
Fecha de Ingreso: octubre-2012
Mensajes: 38
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Como rellenar un ArrayList que es atributo de una clase

Muchas gracias Chuidiang, efectivamente tienes razón. Es mi segundo contacto con java y todavía estoy asentando en la práctica los contextos (que en el papel se ve muy claro) y cometo errores de bulto todavía.

Muy agradecido. Prometo ser bueno :)

Etiquetas: arraylist, clase, rellenar, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:12.