所以,說我有以下枚舉聲明:在一個類的所有實例中是否共享枚舉值?
public class WatchService implements Runnable
{
private State state;
private enum State
{
FINDING_MANIFEST, FINDING_FILES, SENDING_FILES, WAITING_TO_FINISH
};
// other stuff
}
現在,假設我有以下的抽象類:
public abstract class MyOtherAbstractClass extends MyAbstractClass
{
// other stuff
private WatchService watchService;
// other stuff
}
現在,說我有一個擴展上述抽象類下面的類:
public class MyClass extends MyOtherAbstractClass
{
// other stuff
}
如果我有MyClass
一些情況下,將他們都有着當前State
VA略?例如,如果一個實例聲明state = State.FINDING_MANIFEST;
,那麼所有實例的當前狀態是FINDING_MANIFEST
?
我希望這是有道理的..
@DLK - 爲什麼默認情況下包含枚舉的變量是靜態的?這與其他變量相同。 – 2011-03-17 14:59:00
我必須第一次錯誤地實現它,因爲我在[this]之後的某個時刻遇到了這個問題(http://weblogs.java.net/blog/2005/01/31/implementing-state-design-pattern-使用-枚舉)。我可能做了一些奇怪的事情,但我想請你們進一步澄清。 – mre 2011-03-17 15:03:51
@DLK:我認爲你混淆了這個實例。枚舉的實例(像SENDING_FILES這樣的常量)是共享的(因爲它們只存在一次),但不包含這些實例的變量。 – f1sh 2011-03-17 15:14:34