[英]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
是不是暂时的。
行为是这样的:
在序列化过程中, something
和model
的“标识符”将被序列化。
在反序列化期间, something
将被反序列化并且model
将等于它之前的样子,而不必反序列化它,因为它是一个枚举。
但是我有很多这样的模型,我为我的 enum 得到了:
“静态初始化程序的代码超出了 65535 字节的限制”
解决此问题的正确方法是什么? 如何将此枚举编写为一个类来解决此限制?
拥有如此大的enum
是没有意义的。 你不觉得你那里的数据太多了吗?
您正在使用enums
作为在唯一对象实例和字符串名称之间进行映射的一种方式。 因此,将您的枚举替换为另一种类型,例如String
。
您不能使用enum
来满足您的需求。 这是行不通的。 您可以使用ArrayList
或带有Strings
array
,这些Strings
通过file
或db
填充。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.