Java Type Casting: Van widening tot narrowing en verder
Java Type Casting
Deze gids ontrafelt Java type casting, de primaire vormen en illustreert elk met duidelijke voorbeelden.
Inleiding
Voordat je in Java type casting duikt, zorg dat je Java's datatypen begrijpt.
Type Casting
Het proces van het converteren van de waarde van één datatype (int, float, double, etc.) naar een ander heet type casting.
Java biedt 13 conversietypes, maar deze tutorial focust op de twee kerncategorieën:
- Widening Type Casting
- Narrowing Type Casting
Voor een uitgebreide lijst, zie Java's officiële Type Conversie-documentatie.
Widening Type Casting
Bij Widening Type Casting promoot Java automatisch een kleiner primitief naar een groter, zonder dataverlies.
Voorbeeld: int naar double converteren
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("De integer-waarde: " + num);
double data = num;
System.out.println("De double-waarde: " + data);
}
}
Output
De integer-waarde: 10 De double-waarde: 10.0
Dit demonstreert hoe een int-variabele gepromoot wordt naar double vóór toewijzing. De automatische aard van deze conversie is waarom het ook impliciete type casting heet.
Let op: Widening-conversies zijn veilig en worden door de compiler uitgevoerd.
Narrowing Type Casting
Bij Narrowing Type Casting moet je expliciet een groter primitief naar een kleiner casten met haakjes.
Voorbeeld: double naar int converteren
class Main {
public static void main(String[] args) {
double num = 10.99;
System.out.println("De double-waarde: " + num);
int data = (int)num;
System.out.println("De integer-waarde: " + data);
}
}
Output
De double-waarde: 10.99 De integer-waarde: 10
De cast (int) knipt het breukdeel af, wat illustreert waarom deze conversie expliciete type casting heet en kan leiden tot dataverlies.
Let op: Java voert narrowing-conversies niet automatisch uit.
Conversies tussen primitieven en strings
Voorbeeld 1: int naar String
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("De integer-waarde is: " + num);
String data = String.valueOf(num);
System.out.println("De string-waarde is: " + data);
}
}
Output
De integer-waarde is: 10 De string-waarde is: 10
Hier converteert String.valueOf() de integer naar de tekstuele representatie.
Voorbeeld 2: String naar int
class Main {
public static void main(String[] args) {
String data = "10";
System.out.println("De string-waarde is: " + data);
int num = Integer.parseInt(data);
System.out.println("De integer-waarde is: " + num);
}
}
Output
De string-waarde is: 10 De integer-waarde is: 10
Parsen vertrouwt op Integer.parseInt(). Als de string niet geparsed kan worden, wordt een NumberFormatException gegooid.
Let op: Valideer invoer om runtime-exceptions te voorkomen.
Java
- C++ Char Datatype: Declaratie, ASCII en Conversie‑Technieken
- Python Type Conversie & Casting onder de knie krijgen: Een uitgebreide gids
- Java primitieve datatypes: complete gids met voorbeelden
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java encapsulatie meesteren: een praktische gids tot data hiding
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Type Casting: Van widening tot narrowing en verder