Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Java: Probleme mit toString -methode (http://www.informatikerboard.de/board/thread.php?threadid=206)


Geschrieben von HarryPotter am 04.06.2007 um 15:58:

  Java: Probleme mit toString -methode

Guten Tag erstmal,

also ich habe eine Variable deklariert
private Object daten;

diese Variable bekommt im Verlauf des programms einen int-wert (ganzzahligen wert)zugewiesen (über eine andere Klasse deren Instanz einfach nur ein int -wert ist)

Also ich weiß das und möchte diesen "ganzzahligen Wert (z.B. 5)" jetzt rauslesen und ausgeben lassen:

mit daten.toString();

kommt ja nun: Blabla@leo2444 ist mir klar.

Aber weiß jemand wie ich die 5 rausbekomme, so das ich die 5 ganz normal ausgeben kann?



Geschrieben von Crotaphytus am 04.06.2007 um 17:29:

 

Warum ist daten vom Typ Object? Könntest du das nicht weiter einschränken?

Ansonsten sollte, wenn das wirklich ein Integer ist, dies auch von der JVM erkannt werden (Stichwort spätes Binden), so dass hier die toString-Methode von Integer aufgerufen wird. Außer natürlich, deine andere Klasse macht in der Hinsicht auch komische Sachen...



Geschrieben von HarryPotter am 04.06.2007 um 18:03:

 

ja, das ist eben so eine Übungsaufgabe und die Klassenbeschreibungen waren vorgegeben. Also daten wird eine Instanz einer Klasse zugewiesen, in der nur eine integer variable deklariert wird und ein konstruktur dem man den wert für diese integer-variable übergibt(4 Zeilen). KA was JVM da erkennt, ich bin gerade dabei irgendwie mit gettern dran zu kommen, dazu muss ich aber casten, was zur exception führt. compilieren tuts, aber er sagt daten kann nicht von dings zu bums gecastet werden...)



Geschrieben von Tobias am 05.06.2007 um 01:26:

 

Versuchs mal mit Type-Cast:

code:
1:
2:
3:
4:
5:
6:
public String toString() {
   if (daten instanceof Integer)
      return ((Integer)daten).toString();
   
   return daten.toString();
}



Geschrieben von HarryPotter am 05.06.2007 um 16:15:

 

danke für den tip, ich habs gleich probiert, klappt aber nicht, ist also keine instanz von Integer...



Geschrieben von HarryPotter am 05.06.2007 um 16:22:

 

Hey Jawoll! Mit instanceof klappts, jetzt komm ich an den Wert ran...

thx Tobias


Forensoftware: Burning Board, entwickelt von WoltLab GmbH