↖  Google Java Style 指南-中文版-4..


-loading- -loading- -loading-

2020-12-26 , 1537 , 104 , 143

听音频 🔊 . 看视频 🎦

5 命名约定

5.1 对所有标识符都通用的规则

标识符只能使用ASCII字母和数字,因此每个有效的标识符名称都能匹配正则表达式\w+。
在Google Style中,特殊的前缀或后缀不使用在示例中看到的如name_、mName、s_name和kName。

5.2 标识符类型的规则

5.2.1 包名

包名称都是小写,连续的单词连接在一起(无下划线)。如com.example.deepspace而非com.example.deepSpace或com.example.deep_space。


5.2.2 类名

类名都以UpperCamelCase风格编写。
类名通常是名词或名词短语(如:Character或ImmutableList),接口名称通常也是名词或名词短语(如List),但有时可能是形容词或形容词短语(如Readable)。
现在还没有特定的规则或行之有效的约定来命名注解类型。
测试类从它们正在测试的类的名称开始命名,并以Test结束。例如,HashTest或HashIntegrationTest。

5.2.3 方法名

方法名都以lowerCamelCase风格编写。
方法名称通常是动词或动词短语。 例如,sendMessage或stop。
下划线可能出现在JUnit测试方法名称中,用以分隔名称的逻辑。一个典型的模式是test<MethodUnderTest>_<state>,例如testPop_emptyStack。尚未出现给测试方法命名的标准命名准则。


5.2.4 常量名

-loading- -loading--loading-


常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词。那,到底什么算是一个常量?
常数是静态final字段,其内容是不可变的,并且其方法没有可检测的函数副作用。这包括基元,字符串,不可变类型和不可变类型的不可变集合。如果任何实例的观测状态可以改变,它就不是一个常量。静态final字段不一定都是常量。例如:


UfqiLong

// Constants

static final int NUMBER = 5;

static final ImmutableList<String> NAMES = ImmutableList.of("Ed", "Ann");

static final ImmutableMap<String, Integer> AGES = ImmutableMap.of("Ed", 35, "Ann", 32);

static final Joiner COMMA_JOINER = Joiner.on(','); // because Joiner is immutable

static final SomeMutableType[] EMPTY_ARRAY = {};

enum SomeEnum { ENUM_CONSTANT }


// Not constants

static String nonFinal = "non-final";

final String nonStatic = "non-static";

static final Set<String> mutableCollection = new HashSet<String>();

static final ImmutableSet<SomeMutableType> mutableElements = ImmutableSet.of(mutable);

static final ImmutableMap<String, SomeMutableType> mutableValues =
   ImmutableMap.of("Ed", mutableInstance, "Ann", mutableInstance2);

static final Logger logger = Logger.getLogger(MyClass.getName());

static final String[] nonEmptyArray = {"these", "can", "change"};

这些名字通常是名词或名词短语。


5.2.5 非常量字段名

非常量字段名(静态或其他)以lowerCamelCase风格编写。
这些名称通常是名词或名词短语。 例如,computedValues或index。

5.2.6 参数名

参数名以lowerCamelCase风格编写。

应该避免公共方法中的单字符参数名称。

5.2.7 局部变量名

局部变量名以lowerCamelCase风格编写。
即使局部变量是final和不可改变的,也不应该把它示为常量,自然也不能用常量的规则去命名它。

5.2.8 类型变量名

类型变量可用以下两种风格之一进行命名:

单个的大写字母,后面可以跟一个数字(如:E、T、X、T2)。

以类命名方式(章节5.2.2),后面加个大写的T(如:RequestT、FooBarT)。


-loading- -loading--loading-


UfqiLong

5.3 CamelCase:定义

有时不止一种合理的方式可以将短语转换为CamelCase模式,例如首字母缩略词或不寻常的结构,如“IPv6”或“iOS”。为了提高可预测性,Google Style指定(尽量)使用以下确定性方案。
从名称的文本形式开始:

将短语转换为纯ASCII并删除任何省略号。例如:“Müller's algorithm”可改为“Muellers algorithm”。

以空格和任何剩余的标点符号(通常为连字符)将结果划分为单词。

推荐: 如果有任何词在常用的情况下已经具有常规的CamelCase外观,将其拆分为其组成部分(例如,“AdWords”成为“ad words”)。 注意,诸如“iOS”这样的词本身不是真正的骆驼情况;它违反任何惯例,因此本建议不适用。

将单词(包括首字母缩略词)第一个字符大写其他字符全小写:

...将所有字符全大写

...除第一个字符外,将所有字符全小写

最后,将所有单词连接成一个词。
注意,原始单词样式几乎完全被忽略。示例:


文本形式 / 正确 / 错误


"XML HTTP request"    XmlHttpRequest    XMLHTTPRequest    

"new customer ID"    newCustomerId    newCustomerID    

"inner stopwatch"    innerStopwatch    innerStopWatch    

"supports IPv6 on iOS?"    supportsIpv6OnIos    supportsIPv6OnIOS    

"YouTube importer"    YouTubeImporter    


提示: 一些单词在英语中有不明确的连字符:例如“nonempty”和“non-empty”都是正确的,所以方法名称checkNonempty和checkNonEmpty也都是正确的。


朋友圈的风景:美妙时光美景风光:山河湖水人文城市-7

+中文版 +指南 +短语 +字符 +名词

本页Url

↖回首页 +当前续 +尾续 +修订 +评论✍️


👍3 仁智互见 👎0
  • 还没有评论. → +评论
  • -loading- -loading- -loading-


    🔗 连载目录

    🤖 智能推荐

    + 饭食 饭食
    AddToFav   
    新闻 经典 官宣