---
name: java-flexible-constructors
description: "Use when Java 25+ constructors need validation, computed arguments, or field initialization before explicit `super(...)`/`this(...)`."
license: CC-BY-4.0-summary
compatibility: "JDK 25+"
metadata:
sources:
- "https://openjdk.org/jeps/513"
---
# Flexible Constructor Bodies
Use for **Flexible Constructor Bodies** work from [JEP 513](https://openjdk.org/jeps/513) when targeting JDK 25+.
## When active
- Move argument validation before `super(...)`.
- Compute superclass constructor arguments in locals.
- Assign uninitialized fields declared in the same class before `super(...)` when superclass code may observe them.
## Pitfalls
- No implicit/explicit `this` use in the prologue except allowed same-class field assignments.
- No `super` field/method access before superclass construction.
- Fields with initializers cannot be assigned in the prologue.
## Examples
Read `examples/jep-513.md` for JEP-derived snippets.
## References
- https://openjdk.org/jeps/513