3 Stimmen

Typumwandlung in Java

int n;
n = (int)(javax.swing.JOptionPane.showInputDialog(null, "Geben Sie eine 3-stellige Nummer ein."));

Warum gibt es bei der obigen Methode einen Fehler [erforderlich int, gefunden String] und die untere Methode funktioniert einwandfrei?

int n;
n = Integer.parseInt(javax.swing.JOptionPane.showInputDialog(null, "Geben Sie eine 3-stellige Nummer ein."));

9voto

David Harkness Punkte 34750

Integer.parseInt verwendet kein Casting, sondern einen einfachen Algorithmus, um die Ziffern im String als Zahl zu interpretieren. Das Casting wird direkt von der JVM auf dem primitiven Wert oder vom Compiler auf dem Objektverweis durchgeführt. Es kann 4.5 in 4 umwandeln (Typumwandlung, da es den zugrunde liegenden Wert ändert) und ArrayList in List umwandeln (Referenz-Casting, da es die Instanz nicht ändert), aber es kann Zahlen nicht nativ parsen oder formatieren.

1 Stimmen

Du kannst ein int nicht in ein boolean umwandeln.

8voto

Marko Topolnik Punkte 188258

Typumwandlung ist nicht dasselbe wie Typumrechnung, verwirre die Begriffe nicht. Umwandlung bedeutet, die gleiche binäre Darstellung als Wert eines anderen Typs neu zu interpretieren. In Java gibt es Umwandlungen, aber nur zwischen primitiven numerischen Werten. String ist ein Referenztyp, das weißt du sicher.

1voto

Kevin Punkte 51067

Java erlaubt nur das Erstellen gültiger Umwandlungen, d.h. solcher, die es erstellen kann. Das Umwandeln eines Strings in eine ganze Zahl ist unsinnig; das Parsen ist es nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X