1. 类与接口
public sealed interface Shape
permits Circle, Rectangle { double area(); }
public record Circle(double radius) implements Shape {
@Override public double area() {
return Math.PI * radius * radius;
}
}
public record Rectangle(double w, double h) implements Shape {
@Override public double area() { return w * h; }
}
2. 模式匹配(instanceof)
static String describe(Object o) {
return switch (o) {
case Circle c -> "circle r=" + c.radius();
case Rectangle r -> "rect";
case null -> "null";
default -> "other";
};
}
📋 本章要点
record 减少样板代码;sealed 限制实现类;switch 模式匹配让分支更安全。
评论加载中...