Error printing object in java

1

I have a Java method that adds movies from a CSV file. Once I get the data from the movie I keep it in an object. The problem that only appears in the Netbeans console:

model.Peliculas@7e5df0bd
model.Peliculas@30e2c55e
model.Peliculas@188d0799
model.Peliculas@3514cd6d
model.Peliculas@245d0b6a
model.Peliculas@233e28a
model.Peliculas@72729c9a
model.Peliculas@619e581c
model.Peliculas@2dd4091e
model.Peliculas@306e999c
model.Peliculas@569e5547
model.Peliculas@4553a930
model.Peliculas@4842c47d

This is my method to read the files and save them to an object:

public void leerArchivoCSVd(ActionEvent e) throws FileNotFoundException, IOException{
 // TODO code application logic here
    try {
        archivolector = new FileReader(String.valueOf(txtdatosd.getText()));
        BufferedReader buffer = new BufferedReader(archivolector);
        while(buffer.ready()){
            if(!(linea = buffer.readLine()).equals("
System.out.println(peli.toString());
0")){ // System.out.println(linea); pelisD = linea.split(","); id= pelisD[0].toString(); nombre = pelisD[1].toString(); genero = pelisD[2].toString(); anio = pelisD[3].toString(); calif = pelisD[4].toString(); Peliculas peli = new Peliculas(id, nombre, genero, anio, calif); System.out.println(peli.toString()); list.agregarAlFinal(peli); lista.add(peli); } } } catch (Exception ex) { } }

This is where I show it's Movie object:

model.Peliculas@7e5df0bd
model.Peliculas@30e2c55e
model.Peliculas@188d0799
model.Peliculas@3514cd6d
model.Peliculas@245d0b6a
model.Peliculas@233e28a
model.Peliculas@72729c9a
model.Peliculas@619e581c
model.Peliculas@2dd4091e
model.Peliculas@306e999c
model.Peliculas@569e5547
model.Peliculas@4553a930
model.Peliculas@4842c47d

Only this is shown on the console:

model.Peliculas@7e5df0bd
model.Peliculas@30e2c55e
model.Peliculas@188d0799
model.Peliculas@3514cd6d
model.Peliculas@245d0b6a
model.Peliculas@233e28a
model.Peliculas@72729c9a
model.Peliculas@619e581c
model.Peliculas@2dd4091e
model.Peliculas@306e999c
model.Peliculas@569e5547
model.Peliculas@4553a930
model.Peliculas@4842c47d
    
asked by Antonio 11.11.2018 в 17:15
source

2 answers

3

You must redefine the toString () method of the Movies class, by the name of the parameters in its constructor, the toString () method would look something like:

  

@Override   public String toString ()
  {
      String message="ID:" + id + "\ nName:" + name + "\ nGenero:" + genre + "\ nAnio:      "+ anio +" \ nCalification: "+ qualif;       return message;
  }

    
answered by 11.11.2018 / 17:40
source
3

You are trying to print the representation of the object:

System.out.println(peli.toString());

for that reason you get this kind of information:

  

model.Peliculas@30e2c55e model.Peliculas@188d0799   model.Peliculas@3514cd6d model.Peliculas@245d0b6a   model.Peliculas@233e28a model.Peliculas@72729c9a   model.Peliculas@619e581c model.Peliculas@2dd4091e   model.Peliculas@306e999c model.Peliculas@569e5547   model.Peliculas@4553a930 model.Peliculas@4842c47d

If you want to print the value of a property in the object, for that your object must have getter's and setter's , in this way you would obtain the value of the name using a get that you must have in the definition of your object, example:

 System.out.println(peli.getNombre());

This would be the way your object would look:

public final class Peliculas {

    private String id;
    private String nombre;
    private String genero;
    private String anio;
    private String calif;


    public Peliculas(String id, String nombre, String genero, String anio, String calif){
        this.id = id;
        this.nombre = nombre;
        this.genero = genero;
        this.anio = anio;
        this.calif = calif;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

    public String getAnio() {
        return anio;
    }

    public void setAnio(String anio) {
        this.anio = anio;
    }

    public String getCalif() {
        return calif;
    }

    public void setCalif(String calif) {
        this.calif = calif;
    }

    private Peliculas(String id, ) {

    }

}

Print the value of an object in java.

If you want to get all the information about the object using the toString() method, you can overwrite this method in your object and add the values that will be returned when calling this method:

@Override
public String toString(){

    return "Id: '" + this.id + "', Nombre: '" + this.nombre + "', Genero: '" + this.genero + "'" + "', Año: '" + this.anio + "'" + "', Calificación: '" + this.calif + "'";

}

now if you could print the information:

Peliculas peli = new Peliculas(id, nombre, genero, anio, calif);
System.out.println(peli.toString());
    
answered by 11.11.2018 в 21:56