Salve ragazzi, ho una classe che ha 3 variabili esemplare e devo sovrascrivere il metodo toString.
le tre variabili di esemplare sono una Stringa, un double e un array di stringhe. Il problema è proprio su quest'ultimo di cui esce stampato male.
Mi sapete dire perche non funziona?
codice:
public String toString() {
return getClass().getName() + "[nome="+nome + ", " + "altezza="+altezza + ", " + "cibiPreferiti="+cibiPreferiti.toString() + "]";
}
Questa è tutta la classe per completezza ve la metto:
codice:
import java.util.Arrays;
public class Persona {
private String nome;
private double altezza;
private String[] cibiPreferiti;
public Persona(String nome, double altezza, String[] cibiPreferiti) {
this.nome = nome;
this.altezza = altezza;
this.cibiPreferiti = cibiPreferiti;
}
public String getNome() {
return nome;
}
public double getAltezza() {
return altezza;
}
public String[] getCibiPreferiti() {
return cibiPreferiti;
}
/* Sovrascrive metodo toString() della superclasse universale Object */
public String toString() {
return getClass().getName() + "[nome="+nome + ", " + "altezza="+altezza + ", " + "cibiPreferiti="+cibiPreferiti.toString() + "]";
}
/* Sovrascrive il metodo euals() della superclasse universale Object */
public boolean equals(Object otherObject) {
if(otherObject == null) return false;
if(getClass() != otherObject.getClass()) return false;
Persona p = (Persona)otherObject; //cast
String[]pCp = p.getCibiPreferiti();
if( nome.equals( p.getNome() ) && altezza == p.getAltezza() ) {
for(int i=0 ; i<cibiPreferiti.length ; i++) {
if( !( cibiPreferiti[i].equals(pCp[i]) ) ) return false;
}
return true;
}
else return false;
}
/* Sovrascrive metodo clone() della supeclasse Object */
public Object clone() {
String n = new String(nome); //copio il campo nome...
double a = altezza; //... il campo altezza...
String[] cP = Arrays.copyOf(cibiPreferiti, cibiPreferiti.length); //...il campo cibiPreferiti che è un array ed uso, per copiarlo, il metodo appropriato
Persona clone = new Persona(n, a, cP); //utilizzo il costruttore di Persona, per creare un clone
return clone;
}
}