Ich habe dieses Verfahren definiert:Wie drucke ich mein Java-Objekt ohne "something @ 677327b6" ohne Überschreiben?
@Override
public String toString(String line)
{
String[] categories = line.split("; ");
String[] info;
// Get the suspect's information
info = categories[0].split(", ");
suspect = new Person(info[0].charAt(0), Integer.parseInt(info[1]), Double.parseDouble(info[2]));
String str = "";
if (info[0].charAt(0) == 'M')
str += "Male, ";
else if (info[0].charAt(0) == 'F')
str += "Female, ";
else
str += "unknown, ";
str += Integer.parseInt(info[1]) + "'s, ";
str += Double.parseDouble(info[2]) +"m";
System.out.println(str);
return str;
}
}
Wenn ich dies durch die Befehlszeile vor der Zugabe von @Override
lief I war eine Ausgabe wie diese erhalten: [email protected]
im Terminal.
Ich verstehe, dass dies der Hashcode ist, der ausgegeben wird. Ich brauche es jedoch, um die Str zu drucken, wie ich in der toString() -Methode definiert habe.
Das Problem ist, dass die Methode toString (String) vom Typ Detective eine Supertype-Methode überschreiben oder implementieren muss, ist meine einzige Lösung, die @Override
Annotation zu entfernen.
Auf welche andere Weise kann ich auf den richtigen Wert zugreifen, anstatt sie zu überschreiben?
Wenn Sie Eclipse verwenden, können Sie im Menü Quelle-> toString generieren. Damit bekommst du eine void-Methode, die alle Daten ausdruckt – XtremeBaumer