Konwersja (implicit casting) i Rzutowanie (explicit casting)

  • Konwersją typów (implicit conversion) – czyli automatycznym dopasowaniem typu danych przez kompilator (np. int → double).
  • Rzutowaniem typów (explicit casting) – czyli ręcznym wymuszeniem zmiany typu (np. (int) 3.14).
Cel konwersjiJavaScript (dynamiczny)Java (statyczny)Uwagi
String → Integer (liczba całkowita)Number("123")
parseInt("123")
Integer.parseInt("123")W Javie wyjątek NumberFormatException przy błędnym formacie
String → Double (liczba zmiennoprzecinkowa)Number("12.5")
parseFloat("12.5")
Double.parseDouble("12.5")W Javie wymaga kropki jako separatora dziesiętnego
Integer → StringString(123)
123.toString()
String.valueOf(123)
Integer.toString(123)
W Javie + "" też działa
Double → StringString(12.5)
12.5.toString()
String.valueOf(12.5)
Double.toString(12.5)
Integer → Doubleautomatyczniedouble d = 123;W Javie to tzw. implicit widening
Double → Integerautomatycznie (może obciąć)int i = (int) 12.5;Wymaga jawnego rzutowania w Javie
Boolean → StringString(true)String.valueOf(true)
String → BooleanBoolean("true")Boolean.parseBoolean("true")W Javie tylko "true" (małe litery) daje true
Automatyczna konwersja liczbowa"2" * 2 → 4
"2" + 2 → "22"
brak automatycznej konwersji String→NumberW Javie trzeba jawnie parsować
Jawne rzutowanie typów(Number) zmienna(typ) zmienna np. (int) 3.14W Javie wymaga zgodności lub konwersji możliwej przez kompilator


Przykład - java

public class ConversionExample {
   public static void main(String[] args) {
       String a = "123";
       int b = Integer.parseInt(a); // String → int
       String c = String.valueOf(b); // int → String
       double d = Double.parseDouble("12.5"); // String → double
       boolean e = Boolean.parseBoolean("true"); // String → boolean

       System.out.println("int b: " + b);
       System.out.println("String c: " + c);
       System.out.println("double d: " + d);
       System.out.println("boolean e: " + e);
   }
}

Przykład - javascript

 public class ConversionExample {
    public static void main(String[] args) {
        String a = "123";
        int b = Integer.parseInt(a); // String → int
        String c = String.valueOf(b); // int → String
        double d = Double.parseDouble("12.5"); // String → double
        boolean e = Boolean.parseBoolean("true"); // String → boolean

        System.out.println("int b: " + b);
        System.out.println("String c: " + c);
        System.out.println("double d: " + d);
        System.out.println("boolean e: " + e);
    }
}