繁体   English   中英

如何将枚举编写为类?

[英]How to write an enum as a class?

在我的项目中,我操作以下类的实例:

public class MyClass implements Serializable{

    private MyEnum model;
    
    private Object something; //NOT TRANSIENT
    
    public MyClass(MyEnum model){
        
        this.model = model;
        //something = ...
        
    }
    
}

MyClass每个实例都是通过传递一个模型来创建的

public enum MyEnum{
    
    A,
    B,
    C,
    //A lot more of these...
    ;
    
}

我经常要的序列化/反序列化实例MyClass ,这就是为什么我标志着其领域something是不是暂时的。

行为是这样的:

  1. 在序列化过程中, somethingmodel的“标识符”将被序列化。

  2. 在反序列化期间, something将被反序列化并且model将等于它之前的样子,而不必反序列化它,因为它是一个枚举。

但是我有很多这样的模型,我为我的 enum 得到了:

“静态初始化程序的代码超出了 65535 字节的限制”

解决此问题的正确方法是什么? 如何将此枚举编写为一个类来解决此限制?

拥有如此大的enum是没有意义的。 你不觉得你那里的数据太多了吗?

您正在使用enums作为在唯一对象实例和字符串名称之间进行映射的一种方式。 因此,将您的枚举替换为另一种类型,例如String

TL; 博士

您不能使用enum来满足您的需求。 这是行不通的。 您可以使用ArrayList或带有Strings array ,这些Strings通过filedb填充。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM