Casting Variablen in Java

Mohammad Irfan 12 Oktober 2023
  1. Implizites Casting in Java
  2. Explizites Casting in Java
  3. Vermeiden Sie CastException in Java
Casting Variablen in Java

Dieses Tutorial stellt vor, wie man Variablen umwandelt oder eine Variable in einen anderen Typ in Java konvertiert.

Casting wird verwendet, um einen Wert/eine Variable in einen anderen Typ in einer Programmiersprache umzuwandeln/umzuwandeln. Java unterstützt eine Vielzahl von Datentypen wie int, float, double, boolean usw., und beim Schreiben von Code kann es erforderlich sein, Variablen umzuwandeln.

Java unterstützt zwei Arten von Casting, implizites und explizites Casting. Wenn wir int in long oder double umwandeln, tut Java dies implizit, weil long und double mehr Bytes als int verwenden, und wir machen das Gegenteil (d. h. konvertieren double in int), dann kann es aufgrund der ganzzahligen Kapazität zu Datenverlust kommen.

Java erlaubt also implizites Casting zwischen niedrigeren zu höheren Datentypen, aber explizites Casting für höhere zu niedrigeren Typen. Lassen Sie uns anhand einiger Beispiele verstehen.

Implizites Casting in Java

Hier, in diesem Beispiel, wandeln wir int in den Typ float um, implizites Casting. Da Java implizites Casting ohne viel Code erlaubt, funktioniert dieser Code einwandfrei.

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 23;
    System.out.println("int " + a);
    // int to float - implicit casting
    float f = a;
    System.out.println("float " + f);
  }
}

Ausgabe:

int 23
float 23.0

Explizites Casting in Java

In einigen Fällen erfordert Java aufgrund von Datenverlusten ein explizites Casting.

Wenn wir zum Beispiel ein float auf int umwandeln, wird der Wert nach dem Dezimalpunkt abgeschnitten; Aus diesem Grund tut Java dies nicht implizit und gibt einen Kompilierungsfehler aus. Siehe das Beispiel unten.

public class SimpleTesting {
  public static void main(String[] args) {
    float a = 23;
    System.out.println("float " + a);
    // float to int - explicit casting
    int f = a;
    System.out.println("int " + f);
  }
}

Ausgabe:

Type mismatch: cannot convert from float to int

Dieser Kompilierungsfehler ist eine Warnung an den Programmierer, diesen Datenverlust zu vermeiden. Wenn der Programmierer dennoch umwandeln möchte, erlaubt Java einen Umwandlungsoperator, der den Typnamen in Funktionsklammern einschließt.

Dieser Compiler kompiliert den Code und führt ihn aus, sieht jedoch, dass der Wert abgeschnitten wird. Siehe das Beispiel unten.

public class SimpleTesting {
  public static void main(String[] args) {
    float a = 23.5f;
    System.out.println("float " + a);
    // float to int - explicit casting
    int f = (int) a;
    System.out.println("int " + f);
  }
}

Ausgabe:

float 23.50
int 23

Wir können auch die Methode cast() verwenden, um den Objektwert in einen primitiven Wert umzuwandeln. Siehe das Beispiel unten.

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 23;
    System.out.println("integer " + a);
    // float to int - explicit casting
    int i = (Integer.class.cast(a));
    System.out.println("int " + i);
  }
}

Ausgabe:

integer 23
int 23

Vermeiden Sie CastException in Java

Das Casting von Java-Objekten ist ebenfalls ein wichtiges Anliegen, das vor dem Casting den richtigen Klassentyp erfordert. Wenn wir zum Beispiel einen float-Typ mit double umwandeln, lässt Java dies nicht zu und wirft ClassCastException auf die Konsole.

Siehe das Beispiel unten.

public class SimpleTesting {
  public static void main(String[] args) {
    Number num = new Float(15.5);
    System.out.println(num);
    Double d = (Double) num;
    System.out.println(d);
  }
}

Ausgabe:

15.5
Exception in thread "main" java.lang.ClassCastException

Verwandter Artikel - Java Casting