agentsclimarketplace

Java

Skill G1Joshi/Agent-Skills/skills/languages/java

Java OOP with Spring ecosystem, Maven/Gradle, streams, and JVM optimization. Use for .java files.From its SKILL.md

Install
npx -y skills add G1Joshi/Agent-Skills --skill java

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.0 KB, 656 tokens by cl100k_base, as published. Nobody here has run it

Java

Modern Java development with Java 17+ features, streams, and enterprise patterns.

When to Use

  • Working with .java files
  • Building enterprise applications with Spring Boot
  • Android development with Kotlin interop
  • Microservices architecture

Quick Start

// Modern record with validation
public record User(String id, String name, String email) {
    public User {
        Objects.requireNonNull(id, "id must not be null");
        Objects.requireNonNull(name, "name must not be null");
    }
}

Core Concepts

Records (Java 17+)

// Immutable data carriers
public record User(String id, String name, String email) {
    // Compact constructor for validation
    public User {
        Objects.requireNonNull(id, "id must not be null");
    }

    // Additional methods
    public String displayName() {
        return name.toUpperCase();
    }
}

Sealed Classes

public sealed interface Result<T> permits Success, Failure {
    T getOrThrow();
}

public record Success<T>(T value) implements Result<T> {
    @Override
    public T getOrThrow() { return value; }
}

public record Failure<T>(Exception error) implements Result<T> {
    @Override
    public T getOrThrow() { throw new RuntimeException(error); }
}

Common Patterns

Streams & Collections

// Immutable collections
var list = List.of("a", "b", "c");
var map = Map.of("key1", "value1", "key2", "value2");

// Stream operations
List<String> names = users.stream()
    .filter(User::active)
    .map(User::name)
    .sorted()
    .toList();

// Collectors grouping
Map<String, List<User>> byRole = users.stream()
    .collect(Collectors.groupingBy(User::role));

Optional

Optional<User> user = Optional.ofNullable(findUser(id));

String name = user
    .map(User::name)
    .orElse("Unknown");

user.ifPresentOrElse(
    u -> process(u),
    () -> handleMissing()
);

Best Practices

Do:

  • Use var for local variables with obvious types
  • Prefer records for data transfer objects
  • Use Optional instead of null checks
  • Use virtual threads for I/O-bound tasks (Java 21+)

Don't:

  • Use raw types for collections (use generics)
  • Use Optional.get() without checking
  • Catch generic Exception (be specific)
  • Create mutable DTOs unnecessarily

Troubleshooting

ErrorCauseSolution
NullPointerExceptionNull value accessUse Optional or null checks
ClassCastExceptionInvalid type castUse instanceof pattern matching
ConcurrentModificationExceptionModifying during iterationUse Iterator.remove() or streams

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.