java - 枚举值是否在类的所有实例之间共享?

标签 java enums static-members

所以,假设我有以下枚举声明:

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 的当前状态?

我希望这是有道理的..

最佳答案

如果“状态”是静态的,那么是的。否则不行。

更改为:

private static State state;

这使得state在类的所有实例之间共享。

关于java - 枚举值是否在类的所有实例之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340734/

相关文章:

java - Android 游戏开发 - 移动手机

c++ - 是否可以在 C++ 类中声明一个虚拟静态常量值?

JavaFX GridPane 调整 Pane 子级的大小

java - "do"在这里做什么? ( java )

c++ - std::map with key as templated structs with enum member

java - 按字段对一组元素进行排序

c++ - 如何在静态函数中使用静态 vector

c++ - cpp : expected primary-expression before ‘.’ token

java - 在 linux 机器上运行 jar 时出现 UnauthorizedAccessException

枚举声明中的 C++ 变量声明