2010-10-25 111 views
9

我可以在界面中創建public static final變量嗎?我可以保留這些文件中定義的常用常量值嗎?Java:接口是否可以包含在其中定義的常量變量?

+0

這不是簡單的*嘗試*?你確實有一個工作的編譯器,對吧? – 2010-10-25 06:01:28

+0

我很抱歉,我必須改述。我已經嘗試過,它的工作原理。但我更想知道這是否是一種好的做法。 – kiki 2010-10-25 06:03:07

+0

可能重複的[應該將一個常量集合放在一個類或接口?](http://stackoverflow.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a-類或接口) – 2010-10-25 06:05:19

回答

14

是的,你可以:

public interface Constants 
{ 
    public static final int ZERO = 0; 
} 

然而,這是一般估摸不會是一個好主意,這些天。如果接口有一個真正的目的以及,並且這些常量很可能被大多數實現使用,但它引入一個接口只是以便更容易獲得常量是一種濫用接口的目的,真的。 (這是以前發生的事情。)

+0

那麼解決方案是什麼?定義另一個類來定義這些常量? – kiki 2010-10-25 06:01:27

+0

@kiki:這取決於情況。有時枚舉工作得很好,而不是常量。有時讓他們進入自然界的界面就像其他任何東西一樣乾淨。有時候只是讓他們最強烈地關注與他們有關的班級。有時創建一個新班級。 – 2010-10-25 06:02:51

+1

如果您僅實現接口以避免將接口名稱加上前綴。 – 2010-10-25 06:03:35

1

是的,你可以在接口中保持常量。順便說一句,它被認爲不是很好的做法。

1

當然,public常量可以在接口中聲明。但是,有一件事,如果你的接口只是常量的佔位符,可以用enum代替