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


-loading- -loading- -loading-

2020-12-26 , 1536 , 104 , 125

听音频 🔊 . 看视频 🎦

4.8 具体结构

4.8.1 枚举类

枚举常量间用逗号隔开,换行可选。 还允许附加空行(通常只有一个)。 这是一个样例:


private enum Answer {
   YES {
       @Override public String toString() {
           return "yes";
       }
   },

   NO,
   MAYBE}

没有方法和文档的枚举类可写成数组初始化的格式(详见章节4.8.3.1)。


private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }

由于枚举类也是一个类,因此所有适用于其它类的格式规则也适用于枚举类。


4.8.2 变量声明

4.8.2.1 每次只声明一个变量

不要使用组合声明,如int a, b;。

4.8.2.2 需要时才声明,并尽快进行初始化

不要在一个代码块的开头把局部变量一次性都声明了,而是在第一次需要使用它时才声明。局部变量在声明时最好就进行初始化,或者声明后尽快进行初始化。


4.8.3 数组

4.8.3.1 数组初始化:可写成块状结构

数组初始化可以写成块状结构,比如,下面的写法都是可行的:


new int[] {
   0, 1, 2, 3

}


new int[] {
   0,
   1,
   2,
   3

}


new int[] {
   0, 1,
   2, 3

}


new int[]
   {0, 1, 2, 3}


4.8.3.2 非C风格的数组声明

中括号是类型的一部分:String[] args, 而非 String args[]。


4.8.4 switch语句

-loading- -loading--loading-


术语说明: switch块的大括号内是一个或多个语句组。每个语句组包含一个或多个switch标签(case FOO:或default:),后面跟着一条或多条语句(最后一个语句组后面没有语句或者跟着多条语句)。

UfqiLong

4.8.4.1 缩进

与其它块状结构一致,switch块中的内容缩进为4个空格。每个switch标签后新起一行,再缩进4个空格,写下一条或多条语句。

4.8.4.2 Fall-through:注释

在一个switch块内,每个语句组要么通过break、continue、return或抛出异常来终止,要么通过一条注释来说明程序将继续执行到下一个语句组, 任何能表达这个意思的注释都是可行的(典型的是用// fall through)。这个特殊的注释并不需要在最后一个语句组中出现。示例:


switch (input) {
   case 1:
   case 2:
       prepareOneOrTwo();
       // fall through
   case 3:
       handleOneTwoOrThree();
       break;
   default:
       handleLargeNumber(input);

}

注意,在case 1后面不需要注释,只有在语句组的末尾需要。


4.8.4.3 default的情况要写出来

每个switch语句包括一个default语句组,即使它不包含代码。
例外:enum类型的switch语句可以省略default语句组,如果它包括覆盖该类型的所有可能值的显式情况。这使IDE或其他静态分析工具能够在错过任何情况时发出警告。

4.8.5 注解(Annotations)

注解紧跟在文档块后面,应用于类、方法和构造函数,一个注解独占一行。这些换行不属于自动换行(章节4.5,自动换行),因此缩进级别不变。示例:


-loading- -loading--loading-


UfqiLong

@Override

@Nullable

public String getNameIfPresent() { ... }


例外: 单个的注解可以和签名的第一行出现在同一行。如:


@Override public int hashCode() { ... }

应用于字段的注解紧随文档块出现,应用于字段的多个注解允许与字段出现在同一行。如:


@Partial @Mock DataLoader loader;

参数和局部变量注解没有特定规则。


4.8.6 注释

本节讨论实现注释。 Javadoc在章节7 Javadoc中单独讲解。
任何换行符之前可以有任意空格,然后是实现注释。这样的注释使该行非空白。

4.8.6.1 块注释风格

块注释与其周围的代码在同一缩进级别。它们可以是/* ... */风格,也可以是// ...风格。对于多行的/* ... */注释,后续行必须以*开始, 并且与前一行的*对齐。


/*
* This is
* okay.
*/

// And so
// is this.

/* Or you can
 * even do this. */


注释不要封闭在由星号或其它字符绘制的框架里。

提示: 当编写多行注释时,如果您希望自动代码格式化程序在必要时重新换行(段落样式),请使用/* ... */样式。大多数格式化程序不会在// ...样式注释块中重新换行。


4.8.7 修饰符

类和成员的修饰符如果存在,则按Java语言规范中推荐的顺序出现。


public protected private abstract default static final transient volatile synchronized native strictfp

4.8.8 数字字面量

long数值使用大写L后缀,而非小写(以避免与数字1混淆)。例如,3000000000L而不是3000000000l。



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

+中文版 +指南 +语句 +声明 +枚举

本页Url

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


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


    🔗 连载目录

    🤖 智能推荐

    + 必修课 必修课
    AddToFav   
    新闻 经典 官宣