Modernize Java

Update Java code to modern language features — records, switch expressions, pattern matching, virtual threads, sealed classes, text blocks, and current collection idioms. Triggers on Java source files.

kousen Updated

File contents

Modernize Java Code

Update the target code to use modern Java features:

  • Records instead of mutable POJOs where the type is a value carrier
  • Switch expressions with arrow syntax and exhaustiveness checking
  • Pattern matching for instanceof and switch
  • Local variable type inference (var) where it helps readability
  • Virtual threads (Java 21+) for I/O-bound operations — Executors.newVirtualThreadPerTaskExecutor()
  • Sealed classes when the type hierarchy is closed
  • Text blocks for multiline strings
  • Sequenced collections (Java 21+) where ordered access matters
  • Collection factory methods (List.of, Map.of, Map.entry)

Constraints

  • Don't change behavior — preserve the public API and observable semantics.
  • Don't apply var where the inferred type would harm readability (e.g., factory results that could be any of several types).
  • If the project's target Java version is below 21, skip the 21+ features and note it in your summary.
  • Run the test suite after non-trivial changes; if tests don't exist, surface that as a follow-up rather than as a blocker.

kousen/claude-code-training/tree/main/skills/modernize-java commit 3aa4987a99

Frequently asked questions

npx skillmds@latest add kousen/modernize-java