格式規(guī)約
1. 【強(qiáng)制】大括號(hào)的使用約定。如果是大括號(hào)內(nèi)為空,則簡潔地寫成{}即可,不需要換行 ; 如果是非空代碼塊則:
1 ) 左大括號(hào)前不換行。
2 ) 左大括號(hào)后換行。
3 ) 右大括號(hào)前換行。
4 ) 右大括號(hào)后還有 else 等代碼則不換行 ; 表示終止右大括號(hào)后必須換行。
2. 【強(qiáng)制】 左括號(hào)和后一個(gè)字符之間不出現(xiàn)空格 ; 同樣,右括號(hào)和前一個(gè)字符之間也不出現(xiàn)空
格。詳見第 5 條下方正例提示。
3. 【強(qiáng)制】 if / for / while / switch / do 等保留字與左右括號(hào)之間都必須加空格。
4. 【強(qiáng)制】任何運(yùn)算符左右必須加一個(gè)空格。
說明:運(yùn)算符包括賦值運(yùn)算符=、邏輯運(yùn)算符&&、加減乘除符號(hào)、三目運(yùn)行符等。
5. 【強(qiáng)制】縮進(jìn)采用 4 個(gè)空格,禁止使用 tab 字符。
說明:如果使用 tab 縮進(jìn),必須設(shè)置 1 個(gè) tab 為 4 個(gè)空格。IDEA 設(shè)置 tab 為 4 個(gè)空格時(shí),請(qǐng)勿勾選 Use tab character ;而在 eclipse 中,必須勾選 insert spaces for tabs 。
正例: ( 涉及 1-5 點(diǎn) )
public static void main(String args[]) { // 縮進(jìn) 4 個(gè)空格 String say = "hello"; // 運(yùn)算符的左右必須有一個(gè)空格 int flag = 0; // 關(guān)鍵詞 if 與括號(hào)之間必須有一個(gè)空格,括號(hào)內(nèi)的 f 與左括號(hào),0 與右括號(hào)不需要空格 if (flag == 0) { System.out.println(say); } // 左大括號(hào)前加空格且不換行;左大括號(hào)后換行 if (flag == 1) { System.out.println("world"); // 右大括號(hào)前換行,右大括號(hào)后有 else,不用換行 } else { System.out.println("ok"); // 在右大括號(hào)后直接結(jié)束,則必須換行 } }
6. 【強(qiáng)制】單行字符數(shù)限制不超過 120 個(gè),超出需要換行,換行時(shí)遵循如下原則:
1) 第二行相對(duì)第一行縮進(jìn) 4 個(gè)空格,從第三行開始,不再繼續(xù)縮進(jìn),參考示例。
2 ) 運(yùn)算符與下文一起換行。
3 ) 方法調(diào)用的點(diǎn)符號(hào)與下文一起換行。
4 ) 在多個(gè)參數(shù)超長,逗號(hào)后進(jìn)行換行。
5 ) 在括號(hào)前不要換行,見反例。
正例:
StringBuffer sb = new StringBuffer(); //超過 120 個(gè)字符的情況下,換行縮進(jìn) 4 個(gè)空格,并且方法前的點(diǎn)符號(hào)一起換行 sb.append("zi").append("xin")... .append("huang")... .append("huang")... .append("huang");
反例:
StringBuffer sb = new StringBuffer(); //超過 120 個(gè)字符的情況下,不要在括號(hào)前換行 sb.append("zi").append("xin")...append ("huang"); //參數(shù)很多的方法調(diào)用可能超過 120 個(gè)字符,不要在逗號(hào)前換行 method(args1, args2, args3, ... , argsX);
7. 【強(qiáng)制】方法參數(shù)在定義和傳入時(shí),多個(gè)參數(shù)逗號(hào)后邊必須加空格。
正例:下例中實(shí)參的" a ",后邊必須要有一個(gè)空格。
method("a", "b", "c");
8. 【強(qiáng)制】 IDE 的 text file encoding 設(shè)置為 UTF -8 ; IDE 中文件的換行符使用 Unix 格式,不要使用 windows 格式。
9. 【推薦】沒有必要增加若干空格來使某一行的字符與上一行的相應(yīng)字符對(duì)齊。
正例:
int a = 3; long b = 4L; float c = 5F; StringBuffer sb = new StringBuffer();
說明:增加 sb 這個(gè)變量,如果需要對(duì)齊,則給 a 、 b 、 c 都要增加幾個(gè)空格,在變量比較多的情況下,是一種累贅的事情。
10. 【推薦】方法體內(nèi)的執(zhí)行語句組、變量的定義語句組、不同的業(yè)務(wù)邏輯之間或者不同的語義之間插入一個(gè)空行。相同業(yè)務(wù)邏輯和語義之間不需要插入空行。
說明:沒有必要插入多行空格進(jìn)行隔開。