인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
개발 및 엔지니어링 · SKILL.md

java-language

java-language

Modern Java 21+ language standards including Records, Pattern Matching, and Virtual Threads. Use for Java language constructs or Java-to-Java upgrades; defer Kotlin, tests, formatting/build tools, CompletableFuture, builder patterns, and isolated null-handling questions.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: java-language description: Modern Java 21+ language standards including Records, Pattern Matching, and Virtual Threads. Use for Java language constructs or Java-to-Java upgrades; defer Kotlin, tests, formatting/build tools, CompletableFuture, builder patterns, and isolated null-handling questions. metadata: triggers: files: - '**/*.java' - 'pom.xml' - 'build.gradle' keywords: - record - sealed - switch - var - Optional - stream - VirtualThread - instanceof - text block

Java Language Patterns

Priority: P0 (CRITICAL)

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 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

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • DTOs/Value Objects
  • Lombok
  • exhaustive switch
  • if/else chains
  • sealed interface/class
저장한 Skills