Prompts-MCP 686 skills · ai / design / design-pattern / framework / fundamentals / habit / lang / tech-selection /mcp/sse
lang lang/java/naming/variable-naming.md medium

java-variable-naming

Java 变量/字段命名 — camelCase、语义明确、集合用复数,单字母仅限循环计数器。Use when 写 Java 局部变量或字段 / 命名集合 / 评审变量名的 PR 时。

变量命名字段命名variable namingcamelcase集合复数单字母变量
paths
  • *.java

Java · 变量/字段命名

本条只管「变量与字段怎么起名」。常量(static final)见 constant-naming.md;方法见 method-naming.md

规则

场景 约定 示例
局部变量 / 字段 camelCase,名词,语义明确 userName / orderCount
集合(List/Set/数组) 复数 users / orderItems / ids
Map keyToValuexxxMap idToUser / userMap
boolean 字段 is / has / can 前缀 isActive / hasError
循环计数器 单字母 i / j / k 可接受 for (int i = 0; ...)
临时 lambda 参数 短名可接受,但优于单字母 users.forEach(user -> ...)

正例

List<User> activeUsers = repository.findActive();   // 集合用复数
Map<Long, User> idToUser = toMap(activeUsers);       // Map 表达键值关系
int retryCount = 0;                                  // 名词 + 语义
boolean hasPermission = checkAccess(user);           // boolean 带 has

for (int i = 0; i < size; i++) { ... }               // 循环计数器允许单字母

反例

// ❌ 单字母 / 无意义,看不出装的是什么
List<User> l = repository.findActive();      // 应为 activeUsers
int n = 0;                                   // 应为 retryCount 等

// ❌ 集合用单数,误导成单个对象
List<User> user = repository.findActive();   // 应为 users

// ❌ 缩写
String usrNm;                                // 应为 userName

// ❌ 用类型/编号占位,无业务含义
String str1, str2;                           // 应表达各自含义

自检

  • [ ] 变量名是语义明确的名词,能看出它装的是什么?
  • [ ] 集合/数组用复数,单个对象用单数?
  • [ ] 除循环计数器外,没有单字母变量?
  • [ ] 没有缩写、没有 str1 / temp / data 这类无含义占位名?

相关