2016-01-05 71 views
1

關於在Java中使用常量接口有很多負面評論。我只想知道Android開發是否相同,以及原因。 我有這個問題,因爲我聽說Enumstatic final之間的戰鬥。 Enum對Android開發不是好事,我發現Android開發者發佈的YouTube視頻文章建議開發者使用static final而不是Enum使用接口或類爲常量?

+0

這已被討論[之前:](http://stackoverflow.com/questions/2659593/what-is-the-use-of-interface-constants)和[這裏](http://stackoverflow.com /問題/ 1263954 /是全局常數-AN-反模式/ 1265684#1265684) – AhmedNTS

回答

3

這取決於你想要做什麼。如果您需要存儲一組類型安全的靜態數據,請使用枚舉。例如,您可以使用一系列硬幣類型來表示貨幣。

像這樣:

public enum Coin { 
    PENNY, 
    NICKEL, 
    DIME, 
    QUARTER; 
} 

對於相同類型的不是靜態數據,使用靜態最終值。

例如:

static final int FREEZING_TEMP_FAHRENHEIT = 32 
static final int GRAVITY = 9.81 

它,如果你能組,使得靜態數據應該存儲的事物的集合依賴。如果是這樣,枚舉。如果不是,靜態最終。

1

你是什麼意思的界面爲常量?在我的大多數應用程序中,我有一個Singleton類Constants,它具有一些公共靜態final字段(開發時已知的東西)和一些公共字段(只在運行時才知道的東西,並在單例實例初始化首先調用Constants.getInstance())。如果某些字段需要設置上下文,通常我會添加一個方法initialize(Context context),這是我在MainActivity的onCreate中調用的第一件事。

0

對於常量,我通常會爲它創建一個資源。例如,對於字符串,你可以使用strings.xml,你也可以有整型常量。這種方法很有用,因爲你從你的代碼中抽取你的內容,我認爲它更有條理。對於某個特定類所需的常量,我會將它們保留在該類的範圍內!