0 votos

Buenos días!

Lo primero de todo felicitaros por la pagina y desearos buena suerte. Estáis haciendo un gran trabajo.

Estoy siguiendo vuestra publicación acerca de los Map (https://jarroba.com/map-en-java-con-ejemplos/), en concreto la parte de crear un TreeMap a partir de una clave y un objeto propio no predefinido. 

Mi problema esta en que a la hora de imprimir los datos con un código semejante a la vuestra, en lugar de imprimir el valor imprime la dirección donde se encuentra el objeto.

Este es el resultado:

1  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@285c6918
2  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@78a0ff63
3  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@7c601d50
4  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@79b2852b
5  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@326d27ac
6  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@4d499d65
7  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@313f8301
8  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@5cc9d3d0
9  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@7c2dfa2
10  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@661d88a
11  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@4b0b64cc
12  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@59ce792e
13  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@4860827a
14  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@404db674
15  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@50f097b5
16  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@7add838c
17  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@3662bdff
18  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@1bb15351
19  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@4fa822ad
20  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@597f0937
21  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@7ad1caa2
22  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@6b6b3572
23  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@65d8dff8
24  ->  com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript@444f44c5

Pongo las partes del código del objeto creado, donde creo el Map, donde trato de imprimirlo y un ejemplo de como añado los componentes del Map, ya que el código es extenso y no creo que interese poner todo.

Un saludo y gracias 

  import java.util.Calendar;

/**
 * 
 * <p>
 * CLASE: MensajeScript
 * </p>
 *
 * <p>
 * FICHERO: MensajeScript.java
 * </p>
 *
 * <p>
 * DESCRIPCION DE LA CLASE: Bean que contiene la informacion de los mensajes que forman el Script
 * </p>
 *
 * @author ssoler.externo
 */
public class MensajeScript
{
  /**
   * el atributo codigo, de tipo entero, almacena el codigo del mensaje
   */
  private int codigo;
  
  /**
   * el atributo tiempo, de tipo entero, almacena el tiempo en ms respecto al mensaje anterior
   */
  private Calendar tiempo;
  
  /**
   * el atributo mensaje, de tipo String, almacena el mensaje a escribir en el Script
   */
  private String mensaje;
  
  /**
   * 
   * <p>
   * DESCRIPCION: Constructor de la clase com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   */
  public MensajeScript(){
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION: Constructor de la clase com.caf.epd.validacion.JRU2SMM.motor.beans.MensajeScript
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @param codigo
   * @param tiempo
   * @param mensaje
   */
  public MensajeScript(int codigo, Calendar tiempo, String mensaje){
    this.codigo = codigo;
    this.tiempo = tiempo;
    this.mensaje = mensaje;
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION: metodo que devuelve el valor del codigo de mensaje
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @return
   */
  public int getCodigo(){
    return codigo;
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION: metodo que devuelve el valor del tiempo entre mensajes
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @return
   */
  public Calendar getTiempo(){
    return tiempo;
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION: metodo que devuelve el valor del mensaje
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @return
   */
  public String getMensaje(){
    return mensaje;
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION: metodo que recibe e inicializa el valor de codigo
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @param codigo
   */
  public void setCodigo(int codigo){
    this.codigo = codigo;
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION:metodo que recibe e inicializa el valor de tiempo
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @param tiempo
   */
  public void setTiempo(Calendar tiempo){
    this.tiempo = tiempo;
  }
  
  /**
   * 
   * <p>
   * DESCRIPCION:metodo que recibe e inicializa el valor de mensaje
   * </p>
   *
   * <p>
   * RESTRICCIONES DE USO:
   * </p>
   *
   * @param mensaje
   */
  public void setMensaje(String mensaje){
    this.mensaje = mensaje;
  }

}
Map<Integer, MensajeScript> lineas = new TreeMap<Integer, MensajeScript>();

lineas.put(contadorLinea, new MensajeScript(Integer.parseInt(mensaje.getID_SISTEMA()),date,"SEND_CONFIRM (IM-SMM, Inicializar"+MotorJRU2SMM.equipoTren+ " "+MotorJRU2SMM.equipoTren+ "A"+mensaje.getID_SISTEMA()+ " NID_ENGINE" +", TRUE);"));

for(Entry<Integer, MensajeScript> linea : lineas.entrySet()){
      Integer clave = linea.getKey();
      MensajeScript valor = linea.getValue();
      System.out.println(clave+ "  ->  "+valor.toString());
    }

 

cerrada con la nota: No me di cuenta de que el metodo toString era unodel objeto creado y pensaba que era propio de la clase Map
preguntado por Sergio soler saez Abr 22 en Java
cerrada por Sergio soler saez Abr 22