Hola muy buenas a todos!! tengo un problema en este programa que estoy realizando ahora mismo el cual mediante la lectura de un fichero que contiene personas y sus datos, va a ordenarlas en función de si son monitores o usuarios en dos HashMaps diferentes ( Monitores y Usuarios). El problema está en que las clases monitores y usuarios heredan de la clase personas un identificador( idPersona) el nombre, los apellidos y la fecha de nacimiento. Esos 4 datos a la hora de imprimir los HashMap de Personas y Monitores me dice que son null y no deberia de ser asì , a parte cuando intento imprimir un hashmap con todas las personas , me dice la ruta donde se encuentra la clase personas . Os adjunto el codigo! muchas gracias!
MI PREGUNTA: ¿Porque cuando relleno el HashMap de Usuarios y Monitores , no me rellena los campos de id nombre apellidos fecha de nacimiento? ¿ Porque cuando imprimo el hashmap de personas me imprime el paquete donde se encuentra ?
ejemplo:
{1=es.uvigo.pii.instalacionesdeportivas.main.Persona@6d06d69c, 2=es.uvigo.pii.instalacionesdeportivas.main.Persona@7852e922, 3=es.uvigo.pii.instalacionesdeportivas.main.Persona@15db9742}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import es.uvigo.pii.instalacionesdeportivas.main.Persona;
public class FicheroPersonas {
public static void main
(String[] args
) {
// TODO Auto-generated method stub
HashMap<Integer,Persona> Personas= new HashMap<Integer,Persona>();
HashMap<Integer,Usuario> Usuarios= new HashMap<Integer,Usuario>();
HashMap<Integer,Monitor> Monitores= new HashMap<Integer,Monitor>();
int i=0;
int idsOcupados=0;
String rutaPersonas
= "personas.txt";
try {
// Apertura del fichero y creacion de BufferedReader para poder
// hacer una lectura comoda (disponer del metodo readLine()).
// Lectura del fichero
while ((linea = br.readLine()) != null) {
if(linea.startsWith("*")!=true){
datos[i]=linea; // guardo la linea
i++;
}
if(linea.startsWith("*")==true){
if(datos[1].equalsIgnoreCase("usuario")){
System.
out.
println(datos
[0]+datos
[1]);
Usuario usuario
=new Usuario
(Integer.
parseInt(datos
[0]),datos
[2],datos
[3],datos
[4],datos
[5],datos
[6],
Float.
parseFloat(datos
[7]),datos
[8]);
Usuarios.
put(Integer.
parseInt(datos
[0]), usuario
);
Persona persona
=new Persona
(Integer.
parseInt(datos
[0]),datos
[2],datos
[3],datos
[4]);
Personas.
put(Integer.
parseInt(datos
[0]), persona
);
}
if(datos[1].equalsIgnoreCase("monitor")){
System.
out.
println(datos
[0]+datos
[1]);
Monitor monitor
=new Monitor
(Integer.
parseInt(datos
[0]),datos
[2],datos
[3],datos
[4],
Integer.
parseInt(datos
[5]),datos
[6]); Monitores.
put(Integer.
parseInt(datos
[0]), monitor
);
Persona persona
=new Persona
(Integer.
parseInt(datos
[0]),datos
[2],datos
[3],datos
[4]);
Personas.
put(Integer.
parseInt(datos
[0]), persona
); }
i=0;
idsOcupados ++;
}
}
if(datos[1].equalsIgnoreCase("usuario")){
System.
out.
println(datos
[0]+datos
[1]); idsOcupados ++;
}
if(datos[1].equalsIgnoreCase("monitor")){
System.
out.
println(datos
[0]+datos
[1]); idsOcupados ++;
}
System.
out.
println(Monitores
);
e.printStackTrace();
} finally {
// En el finally cerramos el fichero, para asegurarnos
// que se cierra tanto si todo va bien como si salta
// una excepcion.
try {
if (null != fr) {
fr.close();
}
e2.printStackTrace();
}
}
}
}
public class Usuario extends Persona{
public int idUsuario;
public String fechaNacimiento
; public String actividadesPrevias
; public float saldo;
public String actividadesActuales
;
super(idUsuario,nombre,apellidos,fechaNacimiento);
this.fechaAlta=fechaAlta;
this.actividadesActuales=actividadesActuales;
this.saldo=saldo;
this.actividadesPrevias=actividadesPrevias;
}
//GETTERS & SETTERS
@Override
return "Usuario [nombre=" + nombre + ", apellido=" + apellidos+", fechaNacimiento=" + fechaNacimiento
+ ", fechaAlta=" + fechaAlta + ", actividadesPrevias=" + actividadesPrevias + ", saldo=" + saldo
+ ", actividadesActuales=" + actividadesActuales + "]";
}
public String getFechaAlta
() { return fechaAlta;
}
public void setFechaAlta
(String fechaAlta
) { this.fechaAlta = fechaAlta;
}
public String getActividadesPrevias
() { return actividadesPrevias;
}
public void setActividadesPrevias
(String actividadesPrevias
) { this.actividadesPrevias = actividadesPrevias;
}
public float getSaldo() {
return saldo;
}
public void setSaldo(float saldo) {
this.saldo = saldo;
}
public String getActividadesActuales
() { return actividadesActuales;
}
public void setActividadesActuales
(String actividadesActuales
) { this.actividadesActuales = actividadesActuales;
}
}
public class Monitor extends Persona{
public int idMonitor;
public String fechaNacimiento
; public int horasAsignables;
public String GruposImpartidos
;
public Monitor
(int idMonitor,
String nombre,
String apellidos,
String fechaNacimiento,
int horasAsignables,
String GruposImpartidos
){ super(idMonitor,nombre,apellidos,fechaNacimiento);
this.horasAsignables=horasAsignables;
this.GruposImpartidos=GruposImpartidos;
}
@Override
return "Monitor [nombre=" + nombre + ", apellidos=" + apellidos + ", fechaNacimiento=" + fechaNacimiento
+ ", horasAsignables=" + horasAsignables + ", GruposImpartidos=" + GruposImpartidos + "]";
}
public int getHorasAsignables() {
return horasAsignables;
}
public void setHorasAsignables(int horasAsignables) {
this.horasAsignables = horasAsignables;
}
public String getGruposImpartidos
() { return GruposImpartidos;
}
public void setGruposImpartidos
(String gruposImpartidos
) { GruposImpartidos = gruposImpartidos;
}
}
public class Persona {
public int idPersona;
public String fechaNacimiento
;
super();
this.idPersona=idPersona;
this.nombre=nombre;
this.apellidos=apellidos;
this.fechaNacimiento=fechaNacimiento;
}
//GETTERS & SETTERS
public int getIdPersona() {
return idPersona;
}
public void setIdPersona(int idPersona) {
this.idPersona = idPersona;
}
return nombre;
}
public void setNombre
(String nombre
) { this.nombre = nombre;
}
public String getApellidos
() { return apellidos;
}
public void setApellidos
(String apellidos
) { this.apellidos = apellidos;
}
public String getFechaNacimiento
() { return fechaNacimiento;
}
public void setFechaNacimiento
(String fechaNacimiento
) { this.fechaNacimiento = fechaNacimiento;
}
}