2012-07-03 36 views
0
public String getPreviewMessageForWebdavResponse(){ 

    String format="<preview><currentNumber>%d</currentNumber><totalNumber>%d</totalNumber></preview>"; 
    return String.format(format, currentNumber,totalNumber); 
} 

有時,我遇到一個字符串。我不能判斷它是否需要一個常量或局部變量。字符串只在方法中使用一次,不需要暴露在方法之外。何時將變量轉換爲Java中的常量?

如何選擇?

+1

你問你是否應該使用'final'? –

+0

我不明白你的問題。字符串格式與變量來自哪裏無關。 – nhahtdh

+0

@OliCharlesworth:我想他是問這是否應該是一個'靜態最終'字符串。 –

回答

3

你的問題有點不清楚。我會回答你想到的三個可能的問題:

(所有這些都只是風格的問題)。

我應該使用一個變量嗎?或者只是將字符串內聯到它所使用的一個地方?

我想說,至少在你的情況下,字符串的絕對長度表明這一點,把它作爲一個描述性名稱的變量,並保持在方法的頂部。如果需要,稍後可以更輕鬆地查找和更新,如果以後再需要重構,則可以更輕鬆地進行重構,使其更易於閱讀。

該變量應該是本地還是最終?

Probably

它應該是一個級別的常量(static final)?

始終保持範圍和可見性儘可能有限。

如果僅在一種方法中使用它,請將其保留在方法中。

如果在同一個班級中使用多種方法,請使用private static final

如果在同一包裝中的多個地方使用它,請將其製成static final

如果在整個項目中都使用它,那麼只能將它製作成public

+0

。這是我期望的答案! – jiafu