Hallo,
bei dem Programmieren meiner ersten Gui-Anwendung habe ich versucht eine Zahl als Benutzereingabe aus einem JForamattedTextField zu erhalten. Mit dem folgenden Code gelingt dies völlig problemlos:
Mein erster Versuch die Zahl zu erhalten sah etwas anders aus und ist misslungen:
Warum dies nicht funktioniert ist mir jedoch ganz und gar unklar. Ich würde den Code so verstehen:
- jFormattedTextField1. getValue() liefert ein Objekt vom Typ Object zurück
- da ich einen Double-Wert erhalten will führe ich einen Cast von Object zu Double durch
- mit .doubleValue() erhalte ich den Wert.
Aber der Code funktioniert nur wenn ich Object zu Number caste. Aber warum? Schliesslich erweitert Double Number und durch Polymorphie sollte es dann doch auch möglich sein dirket den Cast mit Double durchzuführen.
Würde ich freuen, wenn mir jemand erklären könnte, warum dies nicht so funktioniert, wie ich es mir vorstellen, schliesslich möchte ich gerne lernen die Sprache zu verstehen und nicht nur Code zu kopieren.
Grüsse & Danke
E. coli
bei dem Programmieren meiner ersten Gui-Anwendung habe ich versucht eine Zahl als Benutzereingabe aus einem JForamattedTextField zu erhalten. Mit dem folgenden Code gelingt dies völlig problemlos:
Code:
double number = (((Number)jFormattedTextField1.getValue()).doubleValue());
Mein erster Versuch die Zahl zu erhalten sah etwas anders aus und ist misslungen:
Code:
double number = (((Double)jFormattedTextField1.getValue()).doubleValue());
Warum dies nicht funktioniert ist mir jedoch ganz und gar unklar. Ich würde den Code so verstehen:
- jFormattedTextField1. getValue() liefert ein Objekt vom Typ Object zurück
- da ich einen Double-Wert erhalten will führe ich einen Cast von Object zu Double durch
- mit .doubleValue() erhalte ich den Wert.
Aber der Code funktioniert nur wenn ich Object zu Number caste. Aber warum? Schliesslich erweitert Double Number und durch Polymorphie sollte es dann doch auch möglich sein dirket den Cast mit Double durchzuführen.
Würde ich freuen, wenn mir jemand erklären könnte, warum dies nicht so funktioniert, wie ich es mir vorstellen, schliesslich möchte ich gerne lernen die Sprache zu verstehen und nicht nur Code zu kopieren.
Grüsse & Danke
E. coli