[英]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.