所以,说我有以下枚举声明:
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
值?例如,如果一个实例声明state = State.FINDING_MANIFEST;
,那么所有实例的当前状态是否为FINDING_MANIFEST
?
我希望这是有道理的。
答案 0 :(得分:4)
如果“state”是静态的,那么是。否则没有。
更改为:
private static State state;
这使得state
在您班级的所有实例中共享。
答案 1 :(得分:1)
没有。 state
是一个实例变量。每个实例化的对象都有自己的。
如果您将其定义为
private static State state;
然后只有一个实例,并且该类的所有实例都会看到相同的实例。
答案 2 :(得分:1)
如果我正确理解了这个问题,这不是针对枚举的。
想象一下使用private String state = "FINDING_MANIFEST";
的相同情况。
除非state
为static
,否则不会在实例之间共享。