AgentSkillsCN

java-patterns

此技能适用于 Java/Spring 框架中的常见模式、依赖注入、流式处理、Optional 类型、Kotlin 语言、Spring Boot 框架、Maven 构建工具、Gradle 构建系统以及 JVM 后端开发。

SKILL.md
--- frontmatter
name: java-patterns
description: This skill should be used for Java/Spring patterns, dependency injection, streams, Optional, Kotlin, Spring Boot, Maven, Gradle, JVM backend
whenToUse: Java code, Spring Boot, JUnit, Kotlin, .java files, .kt files, Maven, Gradle, JVM backend, Spring framework, Jakarta EE
whenNotToUse: Non-JVM code, Android-specific (use Android docs)
seeAlso:
  - skill: testing-strategies
    when: JUnit test architecture
  - skill: api-design
    when: Spring REST APIs
  - skill: architecture-patterns
    when: Java application structure

Java Patterns

Idiomatic Java/Spring patterns for Java 17+.

Records

java
public record User(String name, String email) {}

Optional

java
Optional.ofNullable(user)
    .map(User::getEmail)
    .orElse("default@example.com");

Streams

java
List<String> names = users.stream()
    .filter(u -> u.isActive())
    .map(User::getName)
    .collect(Collectors.toList());

Spring Dependency Injection

java
@Service
public class UserService {
    private final UserRepository repo;

    public UserService(UserRepository repo) {
        this.repo = repo;
    }
}

JUnit 5

java
@Test
void shouldReturnUser() {
    User user = service.findById(1L);
    assertThat(user.getName()).isEqualTo("test");
}

@ParameterizedTest
@ValueSource(strings = {"a", "b", "c"})
void shouldValidate(String input) {
    assertTrue(validator.isValid(input));
}