← Index

Chapter 3: Object-Oriented Programming

Record, sealed, switch patterns

Sealed interface & records

public sealed interface Shape permits Circle, Rectangle {
    double area();
}
public record Circle(double radius) implements Shape {
    public double area() { return Math.PI * radius * radius; }
}
public record Rectangle(double w, double h) implements Shape {
    public double area() { return w * h; }
}

switch on types

static String describe(Object o) {
    return switch (o) {
        case Circle c -> "circle";
        case Rectangle r -> "rect";
        case null -> "null";
        default -> "other";
    };
}

Loading comments...