格式規約
1. 【強制】大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行 ; 如果是非空程式碼區塊則:
1 ) 左大括號前不換行。
2 ) 左大括號後換行。
3 ) 右大括號前換行。
4 ) 右大括號後面還有 else 等程式碼則不換行 ; 表示終止右大括號後必須換行。
2. 【強制】 左括號和後一個字元之間不出現空格 ; 同樣,右括號和前一個字元之間也不出現空
格。詳見第 5 條下方正例提示。
3. 【強制】 if / for / while / switch / do 等保留字與左右括號之間都必須加空格。
4. 【強制】任何運算子左右必須加一個空格。
說明:運算子包含賦值運算子=、邏輯運算子&&、加減乘除符號、三目運算子等。
5. 【強制】縮排採用 4 個空格,禁止使用 tab 字元。
說明:如果使用 tab 縮進,必須設定 1 個 tab 為 4 個空格。 IDEA 設定tab 為4 個空格時,請勿勾選Use tab character ;而在eclipse 中,必須勾選insert spaces for tabs 。
正例: (涉及1-5 點)
public static void main(String args[]) { // 缩进 4 个空格 String say = "hello"; // 运算符的左右必须有一个空格 int flag = 0; // 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格 if (flag == 0) { System.out.println(say); } // 左大括号前加空格且不换行;左大括号后换行 if (flag == 1) { System.out.println("world"); // 右大括号前换行,右大括号后有 else,不用换行 } else { System.out.println("ok"); // 在右大括号后直接结束,则必须换行 } }
6. 【強制】單行字元數限制不超過120 個,超出需要換行,換行時遵循以下原則:
1) 第二行相對第一行縮排4 個空格,從第三行開始,不再繼續縮進,參考範例。
2 ) 運算子與下文一起換行。
3 ) 方法呼叫的點符號與下文一起換行。
4 ) 在多個參數超長,逗號後進行換行。
5 ) 括號前不要換行,見反例。
正例:
StringBuffer sb = new StringBuffer(); //超过 120 个字符的情况下,换行缩进 4 个空格,并且方法前的点符号一起换行 sb.append("zi").append("xin")... .append("huang")... .append("huang")... .append("huang");
反例:
StringBuffer sb = new StringBuffer(); //超过 120 个字符的情况下,不要在括号前换行 sb.append("zi").append("xin")...append ("huang"); //参数很多的方法调用可能超过 120 个字符,不要在逗号前换行 method(args1, args2, args3, ... , argsX);
7. 【強制】方法參數在定義和傳入時,多個參數逗號後邊必須加空格。
正例:下例中實參的" a ",後邊必須要有一個空格。
method("a", "b", "c");
8. 【強制】 IDE 的text file encoding 設定為UTF -8 ; IDE 中檔案的換行符號使用Unix 格式,不要使用windows 格式。
9. 【建議】沒有必要增加若干空格來使某一行的字元與上一行的對應字元對齊。
正例:
int a = 3; long b = 4L; float c = 5F; StringBuffer sb = new StringBuffer();
說明:增加sb 這個變量,如果需要對齊,則給a 、 b 、 c 都要增加幾個空格,在變數比較多的情況下,是一種累贅的事情。
10. 【推薦】方法體內的執行語句組、變數的定義語句組、不同的業務邏輯之間或不同的語意之間插入一個空行。相同業務邏輯和語意之間不需要插入空白行。
說明:沒有必要插入多行空格進行隔開。