# 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 getAllOrders() { return orderRepository.findAll(); } public Optional 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 getorder() { // 方法名未使用小驼峰 return orderRepository.findAll(); } } ``` ## 适用范围 - 所有 Java 项目代码 - Spring Boot 后端服务 - Java 单元测试