Skip to main content
Journey Uncommon Logo
JourneyUncommon
mediumJavasealed types usageSingle-choice MCQ

Why does this switch over a sealed interface compile without a default branch?

sealed interface Expr permits Num, Add {} record Num(int v) implements Expr {} record Add(Expr l, Expr r) implements Expr {} int eval(Expr e) { return switch (e) { case Num n -> n.v(); case Add a -> eval(a.l()) + eval(a.r()); }; }