Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[JAVA] Problemas de compilación con ArrayList

Participa en el tema [JAVA] Problemas de compilación con ArrayList en el foro Programación.
Hola, estoy haciendo unos ejercicios de programación y hay uno que tengo que usar la ...

Buscar en este tema:
 
  •  
    #1 [JAVA] Problemas de compilación con ArrayList
    Hola, estoy haciendo unos ejercicios de programación y hay uno que tengo que usar la clase ArrayList que no me compila. Quisiera que me indiquen cual es mi error.

    Primero que nada tengo la clase Persona
    Código:
     class Persona{
        private String nombre;
        private String apellido;
        private int dni;
        
        public Persona(String n, String a, int d){
            nombre = n;
            apellido = a;
            dni = d;
        }
        
        public String getNombre(){ return nombre;}
        public String getApellido(){ return apellido;}
        public int getDni(){ return dni;}
        
        public void setNombre(String n){
            nombre = n;
        }
        public void setApellido(String a){
            apellido = a;
        }
        public void setDni(int d){
            dni = d;
        }
    }
    
    y despés tengo la clase EjemploArrayList en la que hago uso de la clase anterior Persona
    Código:
    import java.util.ArrayList;
    
    public class EjemploArrayList{
        private ArrayList personas;
            
        public EjemploArrayList(){
            this.personas = new ArrayList();
        }
    
        public Persona getPersona(int posicion){
            return personas.get(posicion);
        }
        
        public void setPersona(int posicion, Persona p){
            personas.get(posicion).setDni(p.getDni());
            personas.get(posicion).setNombre(p.getNombre());
            personas.get(posicion).setApellido(p.getApellido());
        }
    
        public void addPersona(Persona p){
            personas.add(p);
        }
        
        public void removePersonas(int posicion){
            personas.remove(posicion);
        }
    
        public int cantidadPersonas(){
            return this.personas.size();
        }
    }
    
    Supuestamente ArrayList guarda objetos de tipo Persona.
    El error de compilación me lo tira en la clase EjemploArrayList en la linea 11. me dice "incompatible types".
    Código:
     (return personas.get(posicion) )
    
    Los 3 errores restantes son en el método:
    Código:
    public void setPersona(int posicion, Persona p)
    
    cannot resolve symbol method setDni(int)
    cannot resolve symbol method setNombre(String)
    cannot resolve symbol method setApellido(String)

    Yo creo, creo, que debe ser porque no sabe de que tipo son los elementos del ArrayList, entonces cuando le pido que me devuelva un objeto Persona, no me lo reconoce. No sé .
    Si alguien sabe podría decirme o sino agarro a patadas la computadora que tanto.
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Problemas de compilación con ArrayList

    Te olvidaste de parametrizar ArrayList, por lo tanto sus métodos devuelven objetos de la clase Object y no Persona. Cambiá todos los "ArrayList" por "ArrayList<Persona>" y te va a andar.
    Me gusta este mensaje
  • #3 Re: Problemas de compilación con ArrayList

    Otra solucion es que hagas un casting asi:

    return (Persona)personas.get(posicion);

    y para las otras lineas

    ((Persona)personas.get(posicion)).setDni(p.getDni( ));
    ((Persona)personas.get(posicion)).setNombre(p.getN ombre());
    ((Persona)personas.get(posicion)).setApellido(p.ge tApellido());
    Me gusta este mensaje
  • #4 Re: Problemas de compilación con ArrayList

    fijate bien que no tiene sentido el metodo setPersona(int posicion,Persona p); si tenes la persona.
    ahora si no tenes la persona y queres modificar la persona que esta en una posicion de la lista. Podrias utilizar otros metodos para obtener la persona y modificarla luego. Podrias por ejemplo sobreescribir hashCode() en Persona y formar un ID con algunos atributos de la persona y esto lo metes en un HashMap(key,value). Con key = ID y Value= persona. y ahora la parametrizacion de hashMap seria. Map<String,Persona> personas= new HashMap<String,Persona>();. Proba eso.
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 3 RESPUESTAS
  • 2034 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB