Showing posts with label Java 26 updates. Show all posts
Showing posts with label Java 26 updates. Show all posts

Friday, February 13, 2026

Flexible Constructor Bodies" (the new Java 25 feature)

​The Problem (Pre-Java 22/25): Traditionally, super() or this() had to be the very first line of a constructor. You couldn't validate data or perform logic before calling the parent class.

​The Solution: You can now execute statements (like if checks or data formatting) before calling the parent constructor.

​The Benefit: This prevents "half-initialized" objects. You can now throw an exception before the parent class even allocates memory, leading to cleaner, safer code.


public class UserAccount extends BaseAccount {
    public UserAccount(String email) {
        // NEW in Java 22/25: Logic 
BEFORE super()
        if (!email.contains("@")) {
            throw new IllegalArgumentException("Invalid email format!");
        }
        
        super(email.toLowerCase()); // Now we pass cleaned data to the parent
        System.out.println("Account created for: " + email);
    }
}