java-language

Installation
SKILL.md

Java Language Patterns

Priority: P0 (CRITICAL)

Modern Java (21+) standards for concise, immutable, and expressive code.

Implementation Guidelines

  • Records: Use record for immutable DTOs/Value Objects. Records auto-generate equals, hashCode, toString. Avoid Lombok @Data on Pojos.
  • Local Variables: Use var for inferred types. Explicitly type interface variables.
  • Switch: Use Switch Expressions (->) and Pattern Matching over complex if/else chains.
  • Text Blocks: Use """ (Text Blocks) for JSON, SQL, or multi-line strings.
  • Pattern Matching: Use instanceof with pattern binding: if (obj instanceof String s).
  • Sealed Classes: Use sealed interface/class with permits clause for domain-driven restricted hierarchies. Switch expressions are then exhaustive switch (compiler-verified).
  • Collections: Use List.of(), Map.of(), and Set.of() for immutable collections.
  • Streams: Use stream() pipelines for functional transformations. Use .toList() (Java 16+).
  • Optional: Utilize Optional<T> for return types. Use .ifPresentOrElse() or .orElseThrow().
  • Virtual Threads: Favor Executors.newVirtualThreadPerTaskExecutor() for I/O-heavy workloads.

Anti-Patterns

  • No Nulls: Return Optional or empty collections; avoid null parameters.
  • No Raw Types: Always use generics; never use raw List or Map.
  • No Old Switch: Use switch expressions (->); avoid fall-through.
  • No Manual get/set: Use Records or value objects instead.
  • No synchronized blocks: Use java.util.concurrent or Virtual Threads instead.

References

Related skills
Installs
1
GitHub Stars
483
First Seen
Apr 1, 2026