Files
rules-skills/rules/language/java-naming.md
T
2026-06-24 18:32:50 +08:00

109 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Java 命名规范
## 规则
1. **包名(Package**
- 全部小写,使用反斜杠分隔层级。
- 格式:`com.公司名.项目名.模块名`
- 示例:`com.example.order.service`
2. **类名(Class**
- 使用大驼峰命名法(UpperCamelCase)。
- 名词或名词短语。
- 示例:`UserService``OrderController``DatabaseConfig`
3. **接口名(Interface**
- 使用大驼峰命名法(UpperCamelCase)。
- 通常以 `Interface` 结尾(可选,根据团队规范)。
- 示例:`PaymentServiceInterface``PaymentService`
4. **抽象类名(Abstract Class**
- 使用大驼峰命名法(UpperCamelCase)。
-`Abstract` 开头。
- 示例:`AbstractBaseController``AbstractEventHandler`
5. **枚举名(Enum**
- 使用大驼峰命名法(UpperCamelCase)。
- 示例:`OrderStatus``UserRole`
6. **变量名(Variable**
- 使用小驼峰命名法(camelCase)。
- 见名知意,避免缩写(如 `userList` 而非 `ul`)。
- 示例:`userName``orderList``isActive`
7. **常量名(Constant**
- 全部大写,单词间用下划线分隔。
- 使用 `static final` 修饰。
- 示例:`MAX_RETRY_COUNT``DEFAULT_PAGE_SIZE`
8. **方法名(Method**
- 使用小驼峰命名法(camelCase)。
- 动词或动词短语开头。
- 示例:`getUserById``createOrder``isValid`
9. **布尔变量与方法**
- 布尔变量以 `is``has``can``should` 开头。
- 示例:`isEnabled``hasPermission``canDelete`
- Getter 方法:布尔类型使用 `is` 前缀(如 `isEnabled()`),其他类型使用 `get` 前缀。
10. **异常类名(Exception**
-`Exception` 结尾。
- 示例:`UserNotFoundException``OrderProcessingException`
11. **测试类名(Test Class**
-`Test` 结尾或开头。
- 示例:`UserServiceTest``TestOrderService`
12. **集合变量名**
- 使用复数形式或添加 `List``Map``Set` 后缀。
- 示例:`users``userList``orderMap`
## 示例
### 正确示例
```java
package com.example.order.service;
public class OrderService implements OrderServiceInterface {
private static final int MAX_RETRY_COUNT = 3;
private static final int DEFAULT_PAGE_SIZE = 10;
private final OrderRepository orderRepository;
public List<Order> getAllOrders() {
return orderRepository.findAll();
}
public Optional<Order> getOrderById(Long id) {
return orderRepository.findById(id);
}
public boolean isValidOrder(Order order) {
return order != null && order.getAmount() > 0;
}
}
```
### 错误示例
```java
package com.example.order; // 包名缺少层级
public class orderservice { // 类名未使用大驼峰
private int maxretrycount = 3; // 常量未大写
public List<Order> getorder() { // 方法名未使用小驼峰
return orderRepository.findAll();
}
}
```
## 适用范围
- 所有 Java 项目代码
- Spring Boot 后端服务
- Java 单元测试