Enforce Java coding standards including camelCase variables, PascalCase classes, and PascalCase filenames matching class names.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: coding-standard-java
description: Enforce Java coding standards including camelCase variables, PascalCase classes, and PascalCase filenames matching class names.
---
# Java Coding Standards
When reviewing or generating Java code, follow these rules:
## File Naming
- **Source files:** PascalCase matching the public class name (e.g., `UserService.java`)
- **One public class per file:** File name must match the public class name exactly
- **Test files:** Class name with `Test` suffix (e.g., `UserServiceTest.java`)
- **Interface files:** PascalCase (e.g., `Comparable.java`, `UserRepository.java`)
## Package Naming
- **Packages:** All lowercase, dot-separated (e.g., `com.example.service`, `org.project.utils`)
- **No underscores or hyphens** in package names
- Follow reverse domain name convention
## Variable Naming
- **Local variables:** camelCase (e.g., `userName`, `isActive`, `totalCount`)
- **Instance variables:** camelCase (e.g., `userId`, `createdAt`)
- **Constants:** UPPER_SNAKE_CASE with `static final` (e.g., `MAX_RETRIES`, `DEFAULT_TIMEOUT`)
- **Boolean variables:** Prefix with `is`, `has`, `can`, `should` (e.g., `isEnabled`, `hasPermission`)
## Method Naming
- **Methods:** camelCase, verb or verb phrase (e.g., `calculateTotal()`, `getUserById()`)
- **Getters:** `get` prefix (e.g., `getName()`, `getId()`)
- **Setters:** `set` prefix (e.g., `setName()`, `setId()`)
- **Boolean getters:** `is` or `has` prefix (e.g., `isActive()`, `hasChildren()`)
- **Factory methods:** `create`, `of`, `from`, `valueOf` (e.g., `createInstance()`, `of()`)
## Class/Interface Naming
- **Classes:** PascalCase, noun or noun phrase (e.g., `UserService`, `OrderProcessor`)
- **Interfaces:** PascalCase, adjective or noun (e.g., `Comparable`, `UserRepository`)
- **Abstract classes:** PascalCase, optionally prefix with `Abstract` (e.g., `AbstractHandler`)
- **Exception classes:** PascalCase with `Exception` suffix (e.g., `InvalidInputException`)
- **Enums:** PascalCase for type, UPPER_SNAKE_CASE for values
## Generics
- **Type parameters:** Single uppercase letter (e.g., `T`, `E`, `K`, `V`)
- **Meaningful names:** When clarity needed (e.g., `<Key, Value>`)
## Organization
- Package statement first
- Import statements (java.*, javax.*, third-party, project imports)
- Class declaration with fields, constructors, methods
- Public methods before private methods
No comments yet. Be the first to comment!