簡體   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