Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

pi/agent/skills/optional/java/java-record-patterns/SKILL.md

Raw
Rendered preview

name: java-record-patterns description: "Use when Java 21+ code deconstructs records with instanceof or switch, especially nested record patterns." license: CC-BY-4.0-summary compatibility: "JDK 21+" metadata: sources: - "https://openjdk.org/jeps/440" - "https://openjdk.org/jeps/441"

Record Patterns

Use for Record Patterns work from JEP 440 when targeting JDK 21+.

When active

  • Replace instanceof R r plus accessor calls with R(...) record patterns.
  • Use nested record patterns for record graphs.
  • Use var component patterns when explicit component types add noise.

Pitfalls

  • Record patterns match records only and do not match null.
  • Every record component position needs a pattern.
  • Generic record patterns infer type arguments; ordinary type patterns do not.

Examples

Read examples/jep-440.md for JEP-derived snippets.

References

---
name: java-record-patterns
description: "Use when Java 21+ code deconstructs records with `instanceof` or `switch`, especially nested record patterns."
license: CC-BY-4.0-summary
compatibility: "JDK 21+"
metadata:
  sources:
    - "https://openjdk.org/jeps/440"
    - "https://openjdk.org/jeps/441"
---

# Record Patterns

Use for **Record Patterns** work from [JEP 440](https://openjdk.org/jeps/440) when targeting JDK 21+.

## When active

- Replace `instanceof R r` plus accessor calls with `R(...)` record patterns.
- Use nested record patterns for record graphs.
- Use `var` component patterns when explicit component types add noise.

## Pitfalls

- Record patterns match records only and do not match `null`.
- Every record component position needs a pattern.
- Generic record patterns infer type arguments; ordinary type patterns do not.

## Examples

Read `examples/jep-440.md` for JEP-derived snippets.

## References

- https://openjdk.org/jeps/440
- https://openjdk.org/jeps/441