Secciones

Artículos para tus primeros pasos

Si estás empezando a introducirte en el mundo de Groovy y Grails, no te pierdas nuestros artículos básicos: 

Entrevistas con los expertos
 

Los protagonistas te cuentan de qué van los proyectos más importantes del mundo Groovy:


Un proyecto de:
ImaginaWorks
Campus Escuela de Groovy

Groovy: primeros pasos

Vector nulo al añadir objetos con el metodo add()

hernia - Publicado hace 3 semanas.
Hola! Estoy escribiendo un script en Groovy, es mi primera vez. Estoy obteniendo un error de NullPointerException al acceder a los elementos del vector que previamente llené. El código sitetizado en el que tengo el error es el que sigue:

//////////THIS ABSTRACT CLASS IS WRITTEN IN JAVA/////////////
public abstract class BaseFormation {
    public Vector<Player> form;
    /*.....*/

    public void set_team_name() {
    /*.....*/
    }
}

/////////THIS CLASS IS WRITTEN IN GROOVY, EXTENDING THE JAVA CLASS ABOVE////////
public class Formation extends BaseFormation {

    public Formation() {
        this.form = new Vector<Player>(10);
        this.set_team_name();
        this.set_formation();
        }

    public void set_formation() {
        Player aux=new Player();

        this.form.add(aux.set_player(2, position.CF, 0.5, 0.5));
        this.form.add(aux.set_player(3, position.SW, 0.5, 0.5));
        this.form.add(aux.set_player(4, position.SB, 0.5, 0.5));
        /* I repeat this 7 more times */

        for (k in 0..9)
            {
                switch(this.form.get(k).pos)
                    {
                    /*.....*/


Donde Player es una clase (también escrita en Java)que contiene algunas variables (
(pos, home_x, home_y...) y métodos (el más importante: set_player(), que setea las variables miembro con los valores tomados como argumentos). 

set_player() está funcionando bien, porque ya me aseguré de que el objeto "aux" contiene todos los valores correctamente. Pero el problema lo tengo con el metodo add(), porque el contenido de aux no se copia correctamente en el vector, y cuando se ejecuta la linea del "switch", al querer acceder a la variable pos del objeto del vector, me sale el siguiente error: exception from Groovy: java.lang.NullPointerException: Cannot get property: pos on null object.

Intenté también usar otros metodos como add(index, object), e incluso set(index, object), pero siempre ocurre lo mismo. add() está devolviendo true, lo que incluso me desorienta aún más.

Hernán.

Responder al hilo | Volver al foro "Groovy: primeros pasos" | Volver a los foros