Return to site

🧩☕ GUESS THE JAVA VERSION: SEALED + RECORDS

· java

🔸 TRY THIS QUICK QUIZ

What Java version do you need for this code?

class Example {

sealed interface Shape permits Circle, Square {}

record Circle(double radius) implements Shape {}

record Square(double side) implements Shape {}

}

Choose one:

▪️ Java 6

▪️ Java 9

▪️ Java 13

▪️ Java 17

▪️ Java 23

🔸 STOP HERE AND GUESS ✅

(Scroll only when you’re ready.)

🔸 TL;DR

▪️ If you see sealed ... permits ... → think Java 17.

▪️ If you see record → you’re at least on Java 16.

Section image

🔸 ANSWER ✅

Java 17

🔸 WHY IT’S JAVA 17

▪️ sealed + permits = you control who can implement/extend a type (closed hierarchy). This became a standard feature in Java 17.

▪️ record = a compact way to write small immutable data classes (fields + constructor + getters + equals/hashCode/toString). Records exist since Java 16, so Java 17 supports them too.

▪️ Together, sealed + record is a clean way to model “only these shapes exist”.

🔸 TAKEAWAYS

▪️ Sealed types help you design safe, closed APIs (no surprise implementations).

▪️ Records remove boilerplate for data-only types.

▪️ This combo is perfect for domain models like Shape → Circle/Square and later works great with pattern matching (especially with switch).

🔸 YOUR TURN 💬

Would you use sealed hierarchies in your production code, or do you prefer “open” extension points?

#Java #Java17 #SealedClasses #Records #CleanCode #SoftwareArchitecture #Programming #JVM #BackendDevelopment #LearningJava #JavaTips

Go further with Java certification:

Java👇

Spring👇

SpringBook👇

JavaBook👇