Android Java類編寫規範

來源:互聯網
上載者:User

標籤:

本文僅是我個人在實際開發中習慣的編寫方式,當然這種方式也是來自很多官方的推薦,所以在一定程度上是可以被模仿套用的。本文將不定期更新~

使用特殊逸出序列而不是它的八進位

我們應該用特殊的轉移序列,比如:(\b, \t, \n, \f, \r, \”, \’及\),而不是它們對應的八進位,比如:\012

 

大膽使用非ASCII字元

如果我們在實際中需要用到非ASCII字元,我們當然可以去查表得到他們的轉義碼,但是沒有必要。你可以大膽的在代碼中這麼寫,或者加上注釋。應為這樣很便於閱讀。

String unitAbbrev = "μs";

 

import不要使用萬用字元

不要出現類似這樣的import語句:import java.util.*;

 

不要忽略大括弧

大括弧與if, else, for, do, while語句一起使用,即使只有一條語句(或是空),也應該把大括弧寫上。

 

什麼時候換行

對於非空塊和塊狀結構,大括弧遵循Kernighan和Ritchie風格
(Egyptian brackets):

  1. 左大括弧前不換行
  2. 左大括弧後換行
  3. 右大括弧前換行
  4. 如果右大括弧是一個語句、函數體或類的終止,則右大括弧後換行; 否則不換行。例如,如果右大括弧後面是else或逗號,則不換行。
boolean isShow = true;        if (isShow) {        } else {                    }

 

截斷代碼換行

如果一行代碼太長了,那麼可能會需要換行。這時候換行的原則是:在“非賦值運算子”處斷開。下面是幾個例子:

“+”在下一行

String url = "http://blog.isming.me/2014/10/27/"                 + "google-java-style/";

“&”在下一行

if (changed == true                 & show == true) {                    }

“."在下一行

     Logger             .init(YOUR_TAG)               // default PRETTYLOGGER or use just init()             .setMethodCount(3)            // default 2             .hideThreadInfo()             // default shown             .setLogLevel(LogLevel.NONE);  // default LogLevel.FULL

 

變數聲明

每次只聲明一個變數,不要:int a,b;

推薦下面的方式:

int a;int b;

 

數組中的中括弧

中括弧應該是類型的一部分,不要按照C++的方式來寫,而且中括弧和左邊不要有空格。應該像下面這樣:

int[] d

 

Switch-case中的default

每個switch語句都包含一個default語句組,即使它什麼代碼也不包含。

 

Switch-case中的break

如果你的上一個判斷和下個判斷需要執行的代碼是一致的,那麼你可以不用break,但必須在原來break的地方加上注釋。

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

 

限定符的順序

我們的變數或方法可能有多個限定符,比如public,static什麼的,那麼請按照如下的順序進行編寫。

public protected private abstract static final transient volatile synchronized native strictfp

eg:

public static final String TAG;

 

包名的取法

包名全部小寫,連續的單詞只是簡單地串連起來,不能使用底線。

 

類名

類名通常是名詞或名詞短語,介面名稱有時可能是形容詞或形容詞短語。

 

方法名

方法名通常是動詞或動詞短語。

 

異常

一般情況下捕獲的異常都是需要列印出log的,但有些異常是我們在已知的,或者在這裡出現異常是必然的化,我們可以不加捕獲,但需要添加註釋。

如果一個捕獲的異常被命名為expected,則它可以被不加註釋地忽略。下面是一種非常常見的情形,用以確保所測試的方法會拋出一個期望中的異常,
因此在這裡就沒有必要加註釋。

try {  emptyStack.pop();  fail();} catch (NoSuchElementException expected) {}

 

Javadoc標記

標準的Javadoc標記按以下順序出現:@param@return@throws@deprecated, 前面這4種標記如果出現,描述都不可為空。
當描述無法在一行中容納,連續行需要至少再縮排4個空格。

  /**     * Adds a {@link Fragment} to this activity‘s layout.     *     * @param containerViewId The container view to where add the      *                        fragment.(換行得有縮排)     *                             * @param fragment        The fragment to be added.     */

除了第一個段落,每個段落第一個單詞前都有標籤<p>,並且它和第一個單詞間沒有空格。

 

Android Java類編寫規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.