Skip to content
Development
Skill

/java-refactor

Suggests and applies version-gated Java refactorings. Use when user asks to "refactor this", "clean up this code", "modernize this Java", "simplify this", "extract method", "improve this class", or "make this more idiomatic".

From plugin
claude-java-plugins
1726 skills6 agents5 commands

Claude Code

$ npx -y skills add ducpm2303/claude-java-plugins --skill java-refactor --agent claude-code

SKILL.md

java-refactor.SKILL.md
description: Suggests and applies version-gated Java refactorings. Use when user asks to "refactor this", "clean up this code", "modernize this Java", "simplify this", "extract method", "improve this class", or "make this more idiomatic".
argument-hint: "[paste code or select in editor]"

Refactor the Java code I've selected or provided. Follow these steps:

Step 1 — Detect Java version

Check `pom.xml` (`<java.version>` or `<maven.compiler.source>`) or `build.gradle` (`sourceCompatibility`). If not found, ask: "What Java version are you targeting? (8, 11, 17, 21, or other)"

Step 2 — Apply safe refactorings (all Java versions)

These refactorings are safe regardless of Java version:

  • **Extract method:** if a method is longer than 20 lines or has a distinct sub-step, extract it with a descriptive name
  • **Rename for clarity:** rename variables, methods, or classes with unclear names
  • **Remove duplication:** identify repeated logic blocks and extract to a shared method
  • **Replace magic literals:** replace inline numbers/strings with named `static final` constants
  • **Simplify conditionals:** replace nested if/else chains with early returns or ternary where clearer
  • **Remove dead code:** delete unreachable branches, unused variables, unused imports

Step 3 — Apply version-gated refactorings (only if target version supports it)

State the minimum Java version required for each suggestion:

  • **Java 8+ — Replace anonymous classes with lambdas:** e.g., `new Comparator<String>() { ... }` → `(a, b) -> a.compareTo(b)`
  • **Java 8+ — Replace imperative loops with streams:** e.g., for-each + list.add → `list.stream().filter(...).collect(Collectors.toList())`
  • **Java 8+ — Use Optional instead of null returns:** e.g., `return null` → `return Optional.empty()`
  • **Java 9+ — Use List.of / Map.of:** e.g., `new ArrayList<>(Arrays.asList(...))` → `List.of(...)`
  • **Java 10+ — Use var for local variables:** where the type is obvious from the right-hand side
  • **Java 16+ — Replace data classes with records:** e.g., a class with only final fields, a constructor, and getters → `record`
  • **Java 17+ — Replace instanceof + cast chains with pattern matching:** e.g., `if (obj instanceof String) { String s = (String) obj; }` → `if (obj instanceof String s)`

Output format

For each refactoring: 1. **What:** one sentence describing the change 2. **Why:** one sentence explaining the benefit 3. **Before:** the original code snippet 4. **After:** the refactored code snippet 5. **Java version required:** (e.g., "Java 8+" or "All versions")

Then offer: "Want me to apply these changes to the file?"

Next Steps

After completing refactoring:

  • If tests don't exist for the refactored code → suggest running `/java-test` to generate tests
  • If the refactoring changed public API signatures → suggest running `/java-docs` to update Javadoc
  • Remind the user to run their build: `mvn compile -q` or `./gradlew build -q`
Read more
@ducpm2303
Ships withclaude-java-plugins

A Claude Code plugin marketplace with 3 focused plugins for Java developers. All plugins support Java 8 through Java 21 and tailor advice to your target Java version.

1726 skills6 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
17
Star history of ducpm2303/claude-java-plugins on GitHub, a chart by star-history.com

Other skills on claude-java-plugins.

java-adr

java-adr

Creates, lists, and manages Architecture Decision Records for Java projects. Use when user asks to "create an ADR", "document…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about java-refactor.

Which coding agents can use java-refactor?
java-refactor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.